awk: disallow break/continue outside of loops

function                                             old     new   delta
.rodata                                           104139  104186     +47
chain_group                                          610     633     +23
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 70/0)               Total: 70 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2021-07-14 14:33:37 +02:00
parent d62627487a
commit d3480dd582
2 changed files with 6 additions and 9 deletions

View File

@@ -379,19 +379,14 @@ testing "awk -e and ARGC" \
""
SKIP=
# The examples are in fact not valid awk programs (break/continue
# can only be used inside loops).
# But we do accept them outside of loops.
# We had a bug with misparsing "break ; else" sequence.
# Test that *that* bug is fixed, using simplest possible scripts:
testing "awk break" \
"awk -f - 2>&1; echo \$?" \
"0\n" \
"awk: -:1: 'break' not in a loop\n1\n" \
"" \
'BEGIN { if (1) break; else a = 1 }'
testing "awk continue" \
"awk -f - 2>&1; echo \$?" \
"0\n" \
"awk: -:1: 'continue' not in a loop\n1\n" \
"" \
'BEGIN { if (1) continue; else a = 1 }'