aboutsummaryrefslogtreecommitdiff
path: root/tccgen.c
diff options
context:
space:
mode:
Diffstat (limited to 'tccgen.c')
-rw-r--r--tccgen.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/tccgen.c b/tccgen.c
index a4a40f3..dddeea1 100644
--- a/tccgen.c
+++ b/tccgen.c
@@ -5288,8 +5288,8 @@ static void expr_cond(void)
/* this is horrible, but we must also convert first
operand */
- vpushv(&sv);
- if (c != 2) {
+ if (c != 0) {
+ *vtop = sv;
gen_cast(&type);
if (islv) {
mk_pointer(&vtop->type);
@@ -5298,17 +5298,14 @@ static void expr_cond(void)
gaddrof();
}
- if (c != 0)
- vswap();
- vtop--;
if (c < 0) {
r1 = gv(rc);
move_reg(r2, r1, type.t);
vtop->r = r2;
+ gsym(tt);
+ if (islv)
+ indir();
}
- gsym(tt);
- if (islv)
- indir();
}
}
}