varname-empty.mk revision 1.2
1# $NetBSD: varname-empty.mk,v 1.2 2020/08/22 20:31:50 rillig Exp $
2#
3# Tests for the special variable with the empty name.
4#
5# The variable "" is not supposed to be assigned any value.
6# This is because it is heavily used in the .for loop expansion,
7# as well as to generate arbitrary strings, as in ${:Ufallback}.
8
9# Until 2020-08-22 it was possible to assign a value to the variable with
10# the empty name, leading to all kinds of unexpected effects.
11!=	echo 'value'
12
13# The .for loop expands the expression ${i} to ${:U1}, ${:U2} and so on.
14# This only works if the variable with the empty name is guaranteed to
15# be undefined.
16.for i in 1 2 3
17NUMBERS+=	${i}
18.endfor
19
20all:
21	@echo ${:Ufallback}
22	@echo ${NUMBERS}
23