aboutsummaryrefslogtreecommitdiff
path: root/tccpp.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 /tccpp.c
parent97738d1ae99035695599e5ddec2f0cd5931101d5 (diff)
downloadtinycc-9fda4f4248f24ee3e9feb9204bd1ef035c4859da.tar.gz
tinycc-9fda4f4248f24ee3e9feb9204bd1ef035c4859da.tar.bz2
win32: treat long double as double
Diffstat (limited to 'tccpp.c')
-rw-r--r--tccpp.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/tccpp.c b/tccpp.c
index 505ba52..25b6cbb 100644
--- a/tccpp.c
+++ b/tccpp.c
@@ -1743,9 +1743,14 @@ void parse_number(const char *p)
tokc.f = (float)d;
} else if (t == 'L') {
ch = *p++;
+#ifdef TCC_TARGET_PE
+ tok = TOK_CDOUBLE;
+ tokc.d = d;
+#else
tok = TOK_CLDOUBLE;
/* XXX: not large enough */
tokc.ld = (long double)d;
+#endif
} else {
tok = TOK_CDOUBLE;
tokc.d = d;
@@ -1794,8 +1799,13 @@ void parse_number(const char *p)
tokc.f = strtof(token_buf, NULL);
} else if (t == 'L') {
ch = *p++;
+#ifdef TCC_TARGET_PE
+ tok = TOK_CDOUBLE;
+ tokc.d = strtod(token_buf, NULL);
+#else
tok = TOK_CLDOUBLE;
tokc.ld = strtold(token_buf, NULL);
+#endif
} else {
tok = TOK_CDOUBLE;
tokc.d = strtod(token_buf, NULL);