bc: fix handling of 'return' not in functions, and 'define f()<newline>{...}'
function old new delta
zbc_vm_process 561 597 +36
zbc_parse_stmt_possibly_auto 2232 2253 +21
zbc_lex_number 192 200 +8
zbc_num_divmod 150 156 +6
bc_vm_run 134 139 +5
bc_vm_init 757 760 +3
bc_num_printNewline 51 54 +3
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 7/0 up/down: 82/0) Total: 82 bytes
text data bss dec hex filename
982138 485 7296 989919 f1adf busybox_old
982247 485 7296 990028 f1b4c busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/testsuite/bc.tests b/testsuite/bc.tests
index 86220ad..093b395 100755
--- a/testsuite/bc.tests
+++ b/testsuite/bc.tests
@@ -51,6 +51,11 @@
"8\n9\n" \
"" "define w() { auto z; return 8; }; w(); 9"
+testing "bc define with body on next line" \
+ "bc" \
+ "8\n9\n" \
+ "" "define w()\n{ auto z; return 8; }\nw()\n9"
+
tar xJf bc_large.tar.xz
for f in bc*.bc; do