Module Name: src
Committed By: rillig
Date: Tue Aug 23 17:40:43 UTC 2022
Modified Files:
src/usr.bin/make/unit-tests: varmod-loop.exp varmod-loop.mk
Log Message:
tests/make: demonstrate parse error in ':@' modifier (since 2022-08-08)
Reported by sjg via private mail.
To generate a diff of this commit:
cvs rdiff -u -r1.15 -r1.16 src/usr.bin/make/unit-tests/varmod-loop.exp
cvs rdiff -u -r1.18 -r1.19 src/usr.bin/make/unit-tests/varmod-loop.mk
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/make/unit-tests/varmod-loop.exp
diff -u src/usr.bin/make/unit-tests/varmod-loop.exp:1.15 src/usr.bin/make/unit-tests/varmod-loop.exp:1.16
--- src/usr.bin/make/unit-tests/varmod-loop.exp:1.15 Thu Mar 3 19:36:35 2022
+++ src/usr.bin/make/unit-tests/varmod-loop.exp Tue Aug 23 17:40:43 2022
@@ -13,4 +13,6 @@ mod-loop-dollar:$3$:
mod-loop-dollar:$${word}$$:
mod-loop-dollar:$$5$$:
mod-loop-dollar:$$${word}$$$:
+make: Unknown modifier "-0"
+: t=$(( ${t:-0} + 1 ))
exit status 0
Index: src/usr.bin/make/unit-tests/varmod-loop.mk
diff -u src/usr.bin/make/unit-tests/varmod-loop.mk:1.18 src/usr.bin/make/unit-tests/varmod-loop.mk:1.19
--- src/usr.bin/make/unit-tests/varmod-loop.mk:1.18 Sun Dec 5 15:20:13 2021
+++ src/usr.bin/make/unit-tests/varmod-loop.mk Tue Aug 23 17:40:43 2022
@@ -1,4 +1,4 @@
-# $NetBSD: varmod-loop.mk,v 1.18 2021/12/05 15:20:13 rillig Exp $
+# $NetBSD: varmod-loop.mk,v 1.19 2022/08/23 17:40:43 rillig Exp $
#
# Tests for the :@var@...${var}...@ variable modifier.
@@ -186,4 +186,16 @@ CMDLINE= global # needed for deleting t
. error # 'CMDLINE' is gone now from all scopes
.endif
+
+# In the loop body text of the ':@' modifier, a literal '$' is written as '$$',
+# not '\$'. In the following example, each '$$' turns into a single '$',
+# except for '$i', which is replaced with the then-current value '1' of the
+# iteration variable.
+#
+# FIXME: broken since var.c 1.1028 from 2022-08-08.
+all: varmod-loop-literal-dollar
+varmod-loop-literal-dollar: .PHONY
+ : ${:U1:@i@ t=$$(( $${t:-0} + $i ))@}
+
+
all: .PHONY