1 From: http://git.qemu.org/?p=qemu.git;a=commitdiff;h=3bf7e40ab9140e577a6e7e17d3f5711b28aed833
3 From: Avi Kivity <avi@redhat.com>
4 Date: Tue, 27 Dec 2011 15:11:20 +0000 (+0200)
5 Subject: softfloat: fix for C99
9 C99 appears to consider compound literals as non-constants, and complains
10 when they are used in static initializers. Switch to ordinary initializer
14 diff -dur xen-4.2.0.orig/tools/qemu-xen/fpu/softfloat-specialize.h xen-4.2.0/tools/qemu-xen/fpu/softfloat-specialize.h
15 --- xen-4.2.0.orig/tools/qemu-xen/fpu/softfloat-specialize.h 2012-09-10 20:10:52.000000000 +0200
16 +++ xen-4.2.0/tools/qemu-xen/fpu/softfloat-specialize.h 2012-10-22 14:58:26.000000000 +0200
18 #define floatx80_default_nan_low LIT64( 0xC000000000000000 )
21 -const floatx80 floatx80_default_nan = make_floatx80(floatx80_default_nan_high,
22 - floatx80_default_nan_low);
23 +const floatx80 floatx80_default_nan
24 + = make_floatx80_init(floatx80_default_nan_high, floatx80_default_nan_low);
26 /*----------------------------------------------------------------------------
27 | The pattern for a default generated quadruple-precision NaN. The `high' and
29 #define float128_default_nan_low LIT64( 0x0000000000000000 )
32 -const float128 float128_default_nan = make_float128(float128_default_nan_high,
33 - float128_default_nan_low);
34 +const float128 float128_default_nan
35 + = make_float128_init(float128_default_nan_high, float128_default_nan_low);
37 /*----------------------------------------------------------------------------
38 | Raises the exceptions specified by `flags'. Floating-point traps can be
39 diff -dur xen-4.2.0.orig/tools/qemu-xen/fpu/softfloat.h xen-4.2.0/tools/qemu-xen/fpu/softfloat.h
40 --- xen-4.2.0.orig/tools/qemu-xen/fpu/softfloat.h 2012-09-10 20:10:52.000000000 +0200
41 +++ xen-4.2.0/tools/qemu-xen/fpu/softfloat.h 2012-10-22 14:58:26.000000000 +0200
45 #define make_floatx80(exp, mant) ((floatx80) { mant, exp })
46 +#define make_floatx80_init(exp, mant) { .low = mant, .high = exp }
48 #ifdef HOST_WORDS_BIGENDIAN
53 #define make_float128(high_, low_) ((float128) { .high = high_, .low = low_ })
54 +#define make_float128_init(high_, low_) { .high = high_, .low = low_ }
56 /*----------------------------------------------------------------------------
57 | Software IEC/IEEE floating-point underflow tininess-detection mode.