aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdmund Grimley Evans <Edmund.Grimley.Evans@gmail.com>2015-02-20 22:18:41 +0000
committerEdmund Grimley Evans <Edmund.Grimley.Evans@gmail.com>2015-02-23 22:51:10 +0000
commit40f7e11c5352a3e400d5315f8b2de1f33ca25c82 (patch)
tree75a570e411e6f74350b24c8370038f4b84884e3f
parent6d055312a270e8e32bf47eb0efd0423b8b1fc5b7 (diff)
downloadtinycc-40f7e11c5352a3e400d5315f8b2de1f33ca25c82.tar.gz
tinycc-40f7e11c5352a3e400d5315f8b2de1f33ca25c82.tar.bz2
tccgen.c: Make sure that gen_op always returns an rvalue.
Either this fix, or an alternative one, is required for arm64.
-rw-r--r--tccgen.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/tccgen.c b/tccgen.c
index b96b285..383b146 100644
--- a/tccgen.c
+++ b/tccgen.c
@@ -1832,6 +1832,9 @@ ST_FUNC void gen_op(int op)
vtop->type.t = t;
}
}
+ // Make sure that we have converted to an rvalue:
+ if (vtop->r & VT_LVAL)
+ gv(is_float(vtop->type.t & VT_BTYPE) ? RC_FLOAT : RC_INT);
}
#ifndef TCC_TARGET_ARM