From f9fe73b2ff482e0eed72fde4f671dbee5777de02 Mon Sep 17 00:00:00 2001 From: rillig Date: Sun, 13 Sep 2020 21:00:34 +0000 Subject: [PATCH] make(1): add test for dynamic variable with modifiers in Var_Parse --- usr.bin/make/unit-tests/varparse-dynamic.mk | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/usr.bin/make/unit-tests/varparse-dynamic.mk b/usr.bin/make/unit-tests/varparse-dynamic.mk index 724cca3a5035..228eb17475b0 100644 --- a/usr.bin/make/unit-tests/varparse-dynamic.mk +++ b/usr.bin/make/unit-tests/varparse-dynamic.mk @@ -1,4 +1,4 @@ -# $NetBSD: varparse-dynamic.mk,v 1.1 2020/07/26 22:15:36 rillig Exp $ +# $NetBSD: varparse-dynamic.mk,v 1.2 2020/09/13 21:00:34 rillig Exp $ # Before 2020-07-27, there was an off-by-one error in Var_Parse that skipped # the last character in the variable name. @@ -10,5 +10,16 @@ .if ${.TARGXX} # 2 characters difference, must be defined .endif +# When a dynamic variable (such as .TARGET) is evaluated in the global +# context, it is not yet ready to be expanded. Therefore the complete +# expression is returned as the variable value, hoping that it can be +# resolved at a later point. +# +# This test covers the code in Var_Parse that deals with VAR_JUNK but not +# VAR_KEEP for dynamic variables. +.if ${.TARGET:S,^,,} != "\${.TARGET:S,^,,}" +. error +.endif + all: @: