aboutsummaryrefslogtreecommitdiff
path: root/tccgen.c
diff options
context:
space:
mode:
authorDaniel Glöckner <daniel-gl@gmx.net>2016-10-08 18:52:28 +0200
committerDaniel Glöckner <daniel-gl@gmx.net>2016-10-08 18:52:28 +0200
commitc09b6ce975190dfef22943ffeb0502f4d217e269 (patch)
tree883f65a2b48d7d42487c262044fe3f444300b125 /tccgen.c
parent3dfee1d290c6659cd57670b99abc50e10f481779 (diff)
downloadtinycc-c09b6ce975190dfef22943ffeb0502f4d217e269.tar.gz
tinycc-c09b6ce975190dfef22943ffeb0502f4d217e269.tar.bz2
tccgen.c: use correct type for storing long double constants
Diffstat (limited to 'tccgen.c')
-rw-r--r--tccgen.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/tccgen.c b/tccgen.c
index c33cc81..bb10fe6 100644
--- a/tccgen.c
+++ b/tccgen.c
@@ -5538,7 +5538,12 @@ static void init_putv(CType *type, Section *sec, unsigned long c,
*(double *)ptr = vtop->c.d;
break;
case VT_LDOUBLE:
- *(long double *)ptr = vtop->c.ld;
+ if (sizeof(long double) == LDOUBLE_SIZE)
+ *(long double *)ptr = vtop->c.ld;
+ else if (sizeof(double) == LDOUBLE_SIZE)
+ *(double *)ptr = vtop->c.ld;
+ else
+ tcc_error("can't cross compile long double constants");
break;
case VT_LLONG:
*(long long *)ptr |= (vtop->c.i & bit_mask) << bit_pos;