tccgen: yet another nocode_wanted fix

Some code in gen_opl was depending on a gvtst label
which in nocode_wanted mode is not set.

This was causing vstack leaks and crashes with for example

  long long ll;
  if (0)
      return ll - 10 < 0;
master
grischka 2017-02-12 13:13:49 +01:00
parent 417a1ed384
commit ec6a997f80
1 changed files with 2 additions and 4 deletions

View File

@ -1614,7 +1614,7 @@ static void gen_opl(int op)
if (op != TOK_EQ) {
/* generate non equal test */
/* XXX: NOT PORTABLE yet */
if (a == 0) {
if (op1 == TOK_NE) {
b = gvtst(0, 0);
} else {
#if defined(TCC_TARGET_I386)
@ -1622,10 +1622,8 @@ static void gen_opl(int op)
#elif defined(TCC_TARGET_ARM)
b = ind;
o(0x1A000000 | encbranch(ind, 0, 1));
#elif defined(TCC_TARGET_C67) || defined(TCC_TARGET_ARM64)
tcc_error("not implemented");
#else
#error not supported
tcc_error("not implemented");
#endif
}
}