diff --git a/tccgen.c b/tccgen.c index 6fd2476..d972354 100644 --- a/tccgen.c +++ b/tccgen.c @@ -67,7 +67,7 @@ static int gind(void) { CODE_ON(); return ind; } /* Set 'nocode_wanted' after unconditional jumps */ static void gjmp_addr_acs(int t) { gjmp_addr(t); CODE_OFF(); } -static int gjmp_acs(int t) { t = gjmp(t); CODE_OFF(); return t; } +static int gjmp_acs(int t) { if (!nocode_wanted) { t = gjmp(t); CODE_OFF(); } return t; } /* These are #undef'd at the end of this file */ #define gjmp_addr gjmp_addr_acs @@ -5875,10 +5875,7 @@ static void expr_landor(int op) nocode_wanted++, f = 1; if (tok != op) break; - if (c < 0) - t = gvtst(i, t); - else - vpop(); + t = gvtst(i, t); next(); expr_landor_next(op); }