bc: upstream fixes

function                                             old     new   delta
bc_parse_expr_empty_ok                              1764    1843     +79
bc_error_at                                            -      62     +62
bc_parse_inst_isLeaf                                   -      30     +30
zbc_func_insert                                      100     120     +20
bc_error_bad_function_definition                       -      10     +10
bc_error_bad_assignment                                -      10     +10
zxc_lex_next                                        1608    1614      +6
ok_in_expr                                            30       -     -30
zxc_vm_process                                       874     839     -35
------------------------------------------------------------------------------
(add/remove: 4/1 grow/shrink: 3/1 up/down: 217/-65)           Total: 152 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
diff --git a/testsuite/bc.tests b/testsuite/bc.tests
index 1d45455..13525ea 100755
--- a/testsuite/bc.tests
+++ b/testsuite/bc.tests
@@ -108,6 +108,11 @@
 	"8\n9\n" \
 	"" "define w() { auto z; return 8; }; w(); 9"
 
+testing "bc define auto array same name" \
+	"bc" \
+	"8\n9\n" \
+	"" "define w(x) { auto x[]; return x; }; w(8); 9"
+
 testing "bc define with body on next line" \
 	"bc" \
 	"8\n9\n" \
@@ -133,6 +138,17 @@
 	"1\n2\n2\n3\n" \
 	"" "ifz=1;ifz\n++ifz;ifz++\nifz"
 
+# had parse error on "f()-N"
+testing "bc -l 'e(0)-2'" \
+	"bc -l" \
+	"-1.00000000000000000000\n" \
+	"" "e(0)-2"
+
+testing "bc (!a&&b)" \
+	"bc" \
+	"0\n" \
+	"" "(!a&&b)"
+
 testing "bc print 1,2,3" \
 	"bc" \
 	"123" \