aboutsummaryrefslogtreecommitdiff
path: root/tccgen.c
diff options
context:
space:
mode:
authorJoe Soroka <gits@joesoroka.com>2011-07-11 00:00:47 -0700
committerJoe Soroka <gits@joesoroka.com>2011-07-11 00:00:47 -0700
commitcd3d1a45f34be3c9a358f1743bcaf8aac897992e (patch)
tree9e37df5d052cbf077308c77bdeea5816a9e436de /tccgen.c
parent38756b506f99454a70402c2589a93e8a9d9d78c6 (diff)
downloadtinycc-cd3d1a45f34be3c9a358f1743bcaf8aac897992e.tar.gz
tinycc-cd3d1a45f34be3c9a358f1743bcaf8aac897992e.tar.bz2
better constant handling for expr_cond
Diffstat (limited to 'tccgen.c')
-rw-r--r--tccgen.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/tccgen.c b/tccgen.c
index 2ce6820..cb9765c 100644
--- a/tccgen.c
+++ b/tccgen.c
@@ -4036,6 +4036,10 @@ static void expr_cond(void)
if (const_wanted) {
expr_lor_const();
+ } else {
+ expr_lor();
+ }
+ if (const_wanted || ((vtop->r & (VT_VALMASK | VT_LVAL | VT_SYM)) == VT_CONST)) {
if (tok == '?') {
CType boolean;
int c;
@@ -4057,7 +4061,6 @@ static void expr_cond(void)
vpop();
}
} else {
- expr_lor();
if (tok == '?') {
next();
if (vtop != vstack) {