bc: support void functions (GNU compat)

function                                             old     new   delta
xc_program_print                                       -     689    +689
zxc_vm_process                                       814     869     +55
zxc_program_exec                                    4098    4116     +18
zxc_program_assign                                   385     392      +7
bc_result_free                                        43      46      +3
zxc_program_binOpPrep                                243     245      +2
zdc_program_execStr                                  518     520      +2
zxc_program_print                                    683       -    -683
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 6/0 up/down: 776/-683)           Total: 93 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2019-01-04 13:58:46 +01:00
parent 1db367a8e6
commit 54f5c1d600
2 changed files with 73 additions and 19 deletions

View File

@@ -123,6 +123,23 @@ testing "bc define with body on next line" \
"8\n9\n" \
"" "define w()\n{ auto z; return 8; }\nw()\n9"
testing "bc void function" \
"bc" \
"void9\n" \
"" "define void w() {print \"void\"}\nw()\n9"
# Extra POSIX compat - GNU bc does not allow this
testing "bc function named 'void'" \
"bc" \
"void0\n9\n" \
"" "define void() {print \"void\"}\nvoid()\n9"
# Extra POSIX compat - GNU bc does not allow this
testing "bc variable named 'void'" \
"bc" \
"6\n9\n" \
"" "void=6\nvoid\n9"
testing "bc if(cond)<NL>" \
"bc" \
"9\n" \