Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/make make(1): clean up code related to VarEvalFlags



details:   https://anonhg.NetBSD.org/src/rev/0bdb676393fc
branches:  trunk
changeset: 956866:0bdb676393fc
user:      rillig <rillig%NetBSD.org@localhost>
date:      Sun Nov 08 19:53:11 2020 +0000

description:
make(1): clean up code related to VarEvalFlags

Mention VARE_WANTRES before VARE_UNDEFERR since the latter depends on
the former.

In ApplyModifier_Assign, VARE_KEEP_DOLLAR doesn't have to be removed
from eflags since ParseModifierPart does this already.

In EvalUndefined, testing for VARE_WANTRES is redundant if VARE_UNDEFERR
is already set.

diffstat:

 usr.bin/make/arch.c  |  12 ++++++------
 usr.bin/make/cond.c  |   6 +++---
 usr.bin/make/parse.c |  12 ++++++------
 usr.bin/make/suff.c  |   8 ++++----
 usr.bin/make/var.c   |  11 +++--------
 5 files changed, 22 insertions(+), 27 deletions(-)

diffs (203 lines):

diff -r 35defcc382b0 -r 0bdb676393fc usr.bin/make/arch.c
--- a/usr.bin/make/arch.c       Sun Nov 08 19:24:19 2020 +0000
+++ b/usr.bin/make/arch.c       Sun Nov 08 19:53:11 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: arch.c,v 1.174 2020/11/08 09:15:19 rillig Exp $        */
+/*     $NetBSD: arch.c,v 1.175 2020/11/08 19:53:11 rillig Exp $        */
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -125,7 +125,7 @@
 #include "config.h"
 
 /*     "@(#)arch.c     8.2 (Berkeley) 1/2/94"  */
-MAKE_RCSID("$NetBSD: arch.c,v 1.174 2020/11/08 09:15:19 rillig Exp $");
+MAKE_RCSID("$NetBSD: arch.c,v 1.175 2020/11/08 19:53:11 rillig Exp $");
 
 typedef struct List ArchList;
 typedef struct ListNode ArchListNode;
@@ -210,7 +210,7 @@
            Boolean isError;
 
            /* XXX: is expanded twice: once here and once below */
-           (void)Var_Parse(&nested_p, ctxt, VARE_UNDEFERR|VARE_WANTRES,
+           (void)Var_Parse(&nested_p, ctxt, VARE_WANTRES | VARE_UNDEFERR,
                            &result, &result_freeIt);
            /* TODO: handle errors */
            isError = result == var_Error;
@@ -226,7 +226,7 @@
 
     *cp++ = '\0';
     if (expandLibName) {
-       (void)Var_Subst(libName, ctxt, VARE_UNDEFERR|VARE_WANTRES, &libName);
+       (void)Var_Subst(libName, ctxt, VARE_WANTRES | VARE_UNDEFERR, &libName);
        /* TODO: handle errors */
        libName_freeIt = libName;
     }
@@ -254,7 +254,7 @@
                Boolean isError;
                const char *nested_p = cp;
 
-               (void)Var_Parse(&nested_p, ctxt, VARE_UNDEFERR|VARE_WANTRES,
+               (void)Var_Parse(&nested_p, ctxt, VARE_WANTRES | VARE_UNDEFERR,
                                &result, &freeIt);
                /* TODO: handle errors */
                isError = result == var_Error;
@@ -307,7 +307,7 @@
            char *sacrifice;
            char *oldMemName = memName;
 
-           (void)Var_Subst(memName, ctxt, VARE_UNDEFERR|VARE_WANTRES,
+           (void)Var_Subst(memName, ctxt, VARE_WANTRES | VARE_UNDEFERR,
                            &memName);
            /* TODO: handle errors */
 
diff -r 35defcc382b0 -r 0bdb676393fc usr.bin/make/cond.c
--- a/usr.bin/make/cond.c       Sun Nov 08 19:24:19 2020 +0000
+++ b/usr.bin/make/cond.c       Sun Nov 08 19:53:11 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: cond.c,v 1.186 2020/11/08 19:24:19 rillig Exp $        */
+/*     $NetBSD: cond.c,v 1.187 2020/11/08 19:53:11 rillig Exp $        */
 
 /*
  * Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -93,7 +93,7 @@
 #include "dir.h"
 
 /*     "@(#)cond.c     8.2 (Berkeley) 1/2/94"  */
-MAKE_RCSID("$NetBSD: cond.c,v 1.186 2020/11/08 19:24:19 rillig Exp $");
+MAKE_RCSID("$NetBSD: cond.c,v 1.187 2020/11/08 19:53:11 rillig Exp $");
 
 /*
  * The parsing of conditional expressions is based on this grammar:
@@ -443,7 +443,7 @@
            continue;
        case '$':
            /* if we are in quotes, an undefined variable is ok */
-           eflags = doEval && !qt ? VARE_UNDEFERR | VARE_WANTRES :
+           eflags = doEval && !qt ? VARE_WANTRES | VARE_UNDEFERR :
                     doEval ? VARE_WANTRES :
                     VARE_NONE;
 
diff -r 35defcc382b0 -r 0bdb676393fc usr.bin/make/parse.c
--- a/usr.bin/make/parse.c      Sun Nov 08 19:24:19 2020 +0000
+++ b/usr.bin/make/parse.c      Sun Nov 08 19:53:11 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: parse.c,v 1.435 2020/11/08 16:58:33 rillig Exp $       */
+/*     $NetBSD: parse.c,v 1.436 2020/11/08 19:53:11 rillig Exp $       */
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -117,7 +117,7 @@
 #include "pathnames.h"
 
 /*     "@(#)parse.c    8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: parse.c,v 1.435 2020/11/08 16:58:33 rillig Exp $");
+MAKE_RCSID("$NetBSD: parse.c,v 1.436 2020/11/08 19:53:11 rillig Exp $");
 
 /* types and constants */
 
@@ -1063,8 +1063,8 @@
            const char *nested_val;
            void *freeIt;
 
-           (void)Var_Parse(&nested_p, VAR_CMDLINE, VARE_UNDEFERR|VARE_WANTRES,
-                           &nested_val, &freeIt);
+           (void)Var_Parse(&nested_p, VAR_CMDLINE,
+                           VARE_WANTRES | VARE_UNDEFERR, &nested_val, &freeIt);
            /* TODO: handle errors */
            free(freeIt);
            cp += nested_p - cp;
@@ -1944,7 +1944,7 @@
     cmd = uvalue;
     if (strchr(cmd, '$') != NULL) {
        char *ecmd;
-       (void)Var_Subst(cmd, VAR_CMDLINE, VARE_UNDEFERR | VARE_WANTRES, &ecmd);
+       (void)Var_Subst(cmd, VAR_CMDLINE, VARE_WANTRES | VARE_UNDEFERR, &ecmd);
        /* TODO: handle errors */
        cmd = cmd_freeIt = ecmd;
     }
@@ -3032,7 +3032,7 @@
      * Var_Parse does not print any parse errors in such a case.
      * It simply returns the special empty string var_Error,
      * which cannot be detected in the result of Var_Subst. */
-    eflags = DEBUG(LINT) ? VARE_WANTRES : VARE_UNDEFERR | VARE_WANTRES;
+    eflags = DEBUG(LINT) ? VARE_WANTRES : VARE_WANTRES | VARE_UNDEFERR;
     (void)Var_Subst(line, VAR_CMDLINE, eflags, &expanded_line);
     /* TODO: handle errors */
 
diff -r 35defcc382b0 -r 0bdb676393fc usr.bin/make/suff.c
--- a/usr.bin/make/suff.c       Sun Nov 08 19:24:19 2020 +0000
+++ b/usr.bin/make/suff.c       Sun Nov 08 19:53:11 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: suff.c,v 1.234 2020/11/08 00:28:52 rillig Exp $        */
+/*     $NetBSD: suff.c,v 1.235 2020/11/08 19:53:11 rillig Exp $        */
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -129,7 +129,7 @@
 #include "dir.h"
 
 /*     "@(#)suff.c     8.4 (Berkeley) 3/21/94" */
-MAKE_RCSID("$NetBSD: suff.c,v 1.234 2020/11/08 00:28:52 rillig Exp $");
+MAKE_RCSID("$NetBSD: suff.c,v 1.235 2020/11/08 19:53:11 rillig Exp $");
 
 #define SUFF_DEBUG0(text) DEBUG0(SUFF, text)
 #define SUFF_DEBUG1(fmt, arg1) DEBUG1(SUFF, fmt, arg1)
@@ -1132,7 +1132,7 @@
     }
 
     SUFF_DEBUG1("Expanding \"%s\"...", cgn->name);
-    (void)Var_Subst(cgn->name, pgn, VARE_UNDEFERR|VARE_WANTRES, &cp);
+    (void)Var_Subst(cgn->name, pgn, VARE_WANTRES | VARE_UNDEFERR, &cp);
     /* TODO: handle errors */
 
     {
@@ -1183,7 +1183,7 @@
 
                    /* XXX: Why VARE_WANTRES when the result is not used? */
                    (void)Var_Parse(&nested_p, pgn,
-                                   VARE_UNDEFERR|VARE_WANTRES,
+                                   VARE_WANTRES | VARE_UNDEFERR,
                                    &junk, &freeIt);
                    /* TODO: handle errors */
                    if (junk == var_Error) {
diff -r 35defcc382b0 -r 0bdb676393fc usr.bin/make/var.c
--- a/usr.bin/make/var.c        Sun Nov 08 19:24:19 2020 +0000
+++ b/usr.bin/make/var.c        Sun Nov 08 19:53:11 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: var.c,v 1.681 2020/11/08 19:24:19 rillig Exp $ */
+/*     $NetBSD: var.c,v 1.682 2020/11/08 19:53:11 rillig Exp $ */
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -130,7 +130,7 @@
 #include "metachar.h"
 
 /*     "@(#)var.c      8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: var.c,v 1.681 2020/11/08 19:24:19 rillig Exp $");
+MAKE_RCSID("$NetBSD: var.c,v 1.682 2020/11/08 19:53:11 rillig Exp $");
 
 #define VAR_DEBUG1(fmt, arg1) DEBUG1(VAR, fmt, arg1)
 #define VAR_DEBUG2(fmt, arg1, arg2) DEBUG2(VAR, fmt, arg1, arg2)
@@ -2977,9 +2977,6 @@
     }
 
     delim = st->startc == '(' ? ')' : '}';
-    /* TODO: Add test for using the ::= modifier in a := assignment line.
-     * Probably st->eflags should be passed down without VARE_KEEP_DOLLAR
-     * here. */
     res = ParseModifierPart(pp, delim, st->eflags, st, &val, NULL, NULL, NULL);
     if (res != VPR_OK)
        return AMR_CLEANUP;
@@ -3657,9 +3654,7 @@
        return VPR_OK;
     }
 
-    if ((eflags & VARE_UNDEFERR) && (eflags & VARE_WANTRES) &&
-       DEBUG(LINT))
-    {
+    if ((eflags & VARE_UNDEFERR) && DEBUG(LINT)) {
        Parse_Error(PARSE_FATAL, "Variable \"%s\" is undefined", varname);
        free(varname);
        *out_val = var_Error;



Home | Main Index | Thread Index | Old Index