aboutsummaryrefslogtreecommitdiff
path: root/tccgen.c
diff options
context:
space:
mode:
authorgrischka <grischka>2009-07-18 22:07:17 +0200
committergrischka <grischka>2009-07-18 22:07:17 +0200
commit9fda4f4248f24ee3e9feb9204bd1ef035c4859da (patch)
treec422add7403f40e0fbb8725238b4ed85cb3c644e /tccgen.c
parent97738d1ae99035695599e5ddec2f0cd5931101d5 (diff)
downloadtinycc-9fda4f4248f24ee3e9feb9204bd1ef035c4859da.tar.gz
tinycc-9fda4f4248f24ee3e9feb9204bd1ef035c4859da.tar.bz2
win32: treat long double as double
Diffstat (limited to 'tccgen.c')
-rw-r--r--tccgen.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/tccgen.c b/tccgen.c
index 0ff7ac3..65db0ac 100644
--- a/tccgen.c
+++ b/tccgen.c
@@ -2527,7 +2527,9 @@ static int parse_btype(CType *type, AttributeDef *ad)
case TOK_LONG:
next();
if ((t & VT_BTYPE) == VT_DOUBLE) {
+#ifndef TCC_TARGET_PE
t = (t & ~VT_BTYPE) | VT_LDOUBLE;
+#endif
} else if ((t & VT_BTYPE) == VT_LONG) {
t = (t & ~VT_BTYPE) | VT_LLONG;
} else {
@@ -2544,7 +2546,11 @@ static int parse_btype(CType *type, AttributeDef *ad)
case TOK_DOUBLE:
next();
if ((t & VT_BTYPE) == VT_LONG) {
+#ifdef TCC_TARGET_PE
+ t = (t & ~VT_BTYPE) | VT_DOUBLE;
+#else
t = (t & ~VT_BTYPE) | VT_LDOUBLE;
+#endif
} else {
u = VT_DOUBLE;
goto basic_type1;