1 1.8 rillig # $NetBSD: cond-eof.mk,v 1.8 2025/06/28 22:39:28 rillig Exp $ 2 1.1 rillig # 3 1.4 rillig # Tests for parsing the end of '.if' conditions, which are represented as the 4 1.4 rillig # token TOK_EOF. 5 1.4 rillig 6 1.1 rillig 7 1.1 rillig SIDE_EFFECT= ${:!echo 'side effect' 1>&2!} 8 1.2 rillig SIDE_EFFECT2= ${:!echo 'side effect 2' 1>&2!} 9 1.1 rillig 10 1.1 rillig # In the following conditions, ${SIDE_EFFECT} is the position of the first 11 1.3 rillig # parse error. Before cond.c 1.286 from 2021-12-10, it was always fully 12 1.6 rillig # evaluated, even if it was not necessary to expand the expression. 13 1.3 rillig # These syntax errors are an edge case that does not occur during normal 14 1.3 rillig # operation. Still, it is easy to avoid evaluating these expressions, just in 15 1.3 rillig # case they have side effects. 16 1.8 rillig # expect+1: Malformed conditional "0 ${SIDE_EFFECT} ${SIDE_EFFECT2}" 17 1.2 rillig .if 0 ${SIDE_EFFECT} ${SIDE_EFFECT2} 18 1.1 rillig .endif 19 1.8 rillig # expect+1: Malformed conditional "1 ${SIDE_EFFECT} ${SIDE_EFFECT2}" 20 1.2 rillig .if 1 ${SIDE_EFFECT} ${SIDE_EFFECT2} 21 1.1 rillig .endif 22 1.8 rillig # expect+1: Malformed conditional "(0) ${SIDE_EFFECT} ${SIDE_EFFECT2}" 23 1.2 rillig .if (0) ${SIDE_EFFECT} ${SIDE_EFFECT2} 24 1.1 rillig .endif 25