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): reduce the scope where recursive expre...
details: https://anonhg.NetBSD.org/src/rev/05521de6dd44
branches: trunk
changeset: 977698:05521de6dd44
user: rillig <rillig%NetBSD.org@localhost>
date: Sat Oct 31 11:34:30 2020 +0000
description:
make(1): reduce the scope where recursive expressions are detected
Only the call to Var_Subst needs to be protected since the other
functions have nothing to do with expanding variables.
diffstat:
usr.bin/make/main.c | 6 +++---
usr.bin/make/var.c | 14 +++++---------
2 files changed, 8 insertions(+), 12 deletions(-)
diffs (75 lines):
diff -r 27224716c8fe -r 05521de6dd44 usr.bin/make/main.c
--- a/usr.bin/make/main.c Sat Oct 31 11:30:56 2020 +0000
+++ b/usr.bin/make/main.c Sat Oct 31 11:34:30 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: main.c,v 1.417 2020/10/31 09:35:58 rillig Exp $ */
+/* $NetBSD: main.c,v 1.418 2020/10/31 11:34:30 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -118,7 +118,7 @@
#include "trace.h"
/* "@(#)main.c 8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: main.c,v 1.417 2020/10/31 09:35:58 rillig Exp $");
+MAKE_RCSID("$NetBSD: main.c,v 1.418 2020/10/31 11:34:30 rillig Exp $");
#if defined(MAKE_NATIVE) && !defined(lint)
__COPYRIGHT("@(#) Copyright (c) 1988, 1989, 1990, 1993 "
"The Regents of the University of California. "
@@ -1827,7 +1827,7 @@
/* Produce a Fatal error message, then exit immediately.
*
- * If jobs are running, waits for them to finish. */
+ * If jobs are running, wait for them to finish. */
void
Fatal(const char *fmt, ...)
{
diff -r 27224716c8fe -r 05521de6dd44 usr.bin/make/var.c
--- a/usr.bin/make/var.c Sat Oct 31 11:30:56 2020 +0000
+++ b/usr.bin/make/var.c Sat Oct 31 11:34:30 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: var.c,v 1.614 2020/10/31 09:57:47 rillig Exp $ */
+/* $NetBSD: var.c,v 1.615 2020/10/31 11:34:30 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -129,7 +129,7 @@
#include "metachar.h"
/* "@(#)var.c 8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: var.c,v 1.614 2020/10/31 09:57:47 rillig Exp $");
+MAKE_RCSID("$NetBSD: var.c,v 1.615 2020/10/31 11:34:30 rillig Exp $");
#define VAR_DEBUG1(fmt, arg1) DEBUG1(VAR, fmt, arg1)
#define VAR_DEBUG2(fmt, arg1, arg2) DEBUG2(VAR, fmt, arg1, arg2)
@@ -3662,12 +3662,8 @@
free(varname);
}
- if (v->flags & VAR_IN_USE) {
+ if (v->flags & VAR_IN_USE)
Fatal("Variable %s is recursive.", v->name);
- /*NOTREACHED*/
- } else {
- v->flags |= VAR_IN_USE;
- }
/*
* Before doing any modification, we have to make sure the value
@@ -3683,13 +3679,13 @@
VarEvalFlags nested_eflags = eflags;
if (DEBUG(LINT))
nested_eflags &= ~(unsigned)VARE_UNDEFERR;
+ v->flags |= VAR_IN_USE;
(void)Var_Subst(nstr, ctxt, nested_eflags, &nstr);
+ v->flags &= ~(unsigned)VAR_IN_USE;
/* TODO: handle errors */
*freePtr = nstr;
}
- v->flags &= ~(unsigned)VAR_IN_USE;
-
if (haveModifier || extramodifiers != NULL) {
void *extraFree;
Home |
Main Index |
Thread Index |
Old Index