Unified · Split
| @@ -5538,7 +5538,12 @@ static void init_putv(CType *type, Section *sec, unsigned long c, · 5537 unmodified lines | ||
| 5538 | 5538 | *(double *)ptr = vtop->c.d; |
| 5539 | 5539 | break; |
| 5540 | 5540 | case VT_LDOUBLE: |
| 5541 | − *(long double *)ptr = vtop->c.ld; | |
| 5541 | + if (sizeof(long double) == LDOUBLE_SIZE) | |
| 5542 | + *(long double *)ptr = vtop->c.ld; | |
| 5543 | + else if (sizeof(double) == LDOUBLE_SIZE) | |
| 5544 | + *(double *)ptr = vtop->c.ld; | |
| 5545 | + else | |
| 5546 | + tcc_error("can't cross compile long double constants"); | |
| 5542 | 5547 | break; |
| 5543 | 5548 | case VT_LLONG: |
| 5544 | 5549 | *(long long *)ptr |= (vtop->c.i & bit_mask) << bit_pos; |