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>
This commit is contained in:
Denys Vlasenko
2018-12-16 17:06:07 +01:00
parent d1d29b4245
commit e9519e44a6
2 changed files with 29 additions and 8 deletions

View File

@ -51,6 +51,11 @@ testing "bc define auto" \
"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