Message ID | 1324998680-16003-1-git-send-email-avi@redhat.com |
---|---|
State | New |
Headers | show |
Am 27.12.2011 16:11, schrieb Avi Kivity: > C99 appears to consider compound literals as non-constants, and complains > when they are used in static initializers. Switch to ordinary initializer > syntax. > > Signed-off-by: Avi Kivity <avi@redhat.com> Acked-by: Andreas Färber <afaerber@suse.de> For the record, tested with --extra-cflags=-std=gnu99. > diff --git a/fpu/softfloat-specialize.h b/fpu/softfloat-specialize.h > index c5e2dab..4902450 100644 > --- a/fpu/softfloat-specialize.h > +++ b/fpu/softfloat-specialize.h > @@ -89,8 +89,8 @@ const float64 float64_default_nan = const_float64(LIT64( 0xFFF8000000000000 )); > #define floatx80_default_nan_low LIT64( 0xC000000000000000 ) > #endif > > -const floatx80 floatx80_default_nan = make_floatx80(floatx80_default_nan_high, > - floatx80_default_nan_low); > +const floatx80 floatx80_default_nan > + = make_floatx80_init(floatx80_default_nan_high, floatx80_default_nan_low); Calling it init_floatx80 would avoid the line break, but I'm okay with it either way. Thanks, Andreas $ gcc --version gcc (SUSE Linux) 4.6.2 Copyright (C) 2011 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Am 27.12.2011 17:15, schrieb Andreas Färber: > Am 27.12.2011 16:11, schrieb Avi Kivity: >> C99 appears to consider compound literals as non-constants, and complains >> when they are used in static initializers. Switch to ordinary initializer >> syntax. >> Reported-by: Andreas Färber <andreas.faerber@web.de> >> Signed-off-by: Avi Kivity <avi@redhat.com> > > Acked-by: Andreas Färber <afaerber@suse.de> > > For the record, tested with --extra-cflags=-std=gnu99. > >> diff --git a/fpu/softfloat-specialize.h b/fpu/softfloat-specialize.h >> index c5e2dab..4902450 100644 >> --- a/fpu/softfloat-specialize.h >> +++ b/fpu/softfloat-specialize.h >> @@ -89,8 +89,8 @@ const float64 float64_default_nan = const_float64(LIT64( 0xFFF8000000000000 )); >> #define floatx80_default_nan_low LIT64( 0xC000000000000000 ) >> #endif >> >> -const floatx80 floatx80_default_nan = make_floatx80(floatx80_default_nan_high, >> - floatx80_default_nan_low); >> +const floatx80 floatx80_default_nan >> + = make_floatx80_init(floatx80_default_nan_high, floatx80_default_nan_low); > > Calling it init_floatx80 would avoid the line break, but I'm okay with > it either way. Ping! Avi, you didn't indicate whether you were going to simplify this patch or whether you're waiting for someone to apply it as is? Regards, Andreas > > Thanks, > Andreas > > > $ gcc --version > gcc (SUSE Linux) 4.6.2 > Copyright (C) 2011 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
On 02/09/2012 06:20 PM, Andreas Färber wrote: > Am 27.12.2011 17:15, schrieb Andreas Färber: > > Am 27.12.2011 16:11, schrieb Avi Kivity: > >> C99 appears to consider compound literals as non-constants, and complains > >> when they are used in static initializers. Switch to ordinary initializer > >> syntax. > >> > > Reported-by: Andreas Färber <andreas.faerber@web.de> > > >> Signed-off-by: Avi Kivity <avi@redhat.com> > > > > Acked-by: Andreas Färber <afaerber@suse.de> > > > > For the record, tested with --extra-cflags=-std=gnu99. > > > >> diff --git a/fpu/softfloat-specialize.h b/fpu/softfloat-specialize.h > >> index c5e2dab..4902450 100644 > >> --- a/fpu/softfloat-specialize.h > >> +++ b/fpu/softfloat-specialize.h > >> @@ -89,8 +89,8 @@ const float64 float64_default_nan = const_float64(LIT64( 0xFFF8000000000000 )); > >> #define floatx80_default_nan_low LIT64( 0xC000000000000000 ) > >> #endif > >> > >> -const floatx80 floatx80_default_nan = make_floatx80(floatx80_default_nan_high, > >> - floatx80_default_nan_low); > >> +const floatx80 floatx80_default_nan > >> + = make_floatx80_init(floatx80_default_nan_high, floatx80_default_nan_low); > > > > Calling it init_floatx80 would avoid the line break, but I'm okay with > > it either way. > > Ping! Avi, you didn't indicate whether you were going to simplify this > patch or whether you're waiting for someone to apply it as is? > Actually I forgot all about it. If everyone's okay with it as is I'd like it to be applied, otherwise I'll respin. Copying some maintainers completely at random.
Am 09.02.2012 17:38, schrieb Avi Kivity: > On 02/09/2012 06:20 PM, Andreas Färber wrote: >> Am 27.12.2011 17:15, schrieb Andreas Färber: >>> Am 27.12.2011 16:11, schrieb Avi Kivity: >>>> C99 appears to consider compound literals as non-constants, and complains >>>> when they are used in static initializers. Switch to ordinary initializer >>>> syntax. >>>> >> >> Reported-by: Andreas Färber <andreas.faerber@web.de> >> >>>> Signed-off-by: Avi Kivity <avi@redhat.com> >>> >>> Acked-by: Andreas Färber <afaerber@suse.de> >>> >>> For the record, tested with --extra-cflags=-std=gnu99. >>> >>>> diff --git a/fpu/softfloat-specialize.h b/fpu/softfloat-specialize.h >>>> index c5e2dab..4902450 100644 >>>> --- a/fpu/softfloat-specialize.h >>>> +++ b/fpu/softfloat-specialize.h >>>> @@ -89,8 +89,8 @@ const float64 float64_default_nan = const_float64(LIT64( 0xFFF8000000000000 )); >>>> #define floatx80_default_nan_low LIT64( 0xC000000000000000 ) >>>> #endif >>>> >>>> -const floatx80 floatx80_default_nan = make_floatx80(floatx80_default_nan_high, >>>> - floatx80_default_nan_low); >>>> +const floatx80 floatx80_default_nan >>>> + = make_floatx80_init(floatx80_default_nan_high, floatx80_default_nan_low); >>> >>> Calling it init_floatx80 would avoid the line break, but I'm okay with >>> it either way. >> >> Ping! Avi, you didn't indicate whether you were going to simplify this >> patch or whether you're waiting for someone to apply it as is? >> > > Actually I forgot all about it. If everyone's okay with it as is I'd > like it to be applied, otherwise I'll respin. Copying some maintainers > completely at random. Ping? Andreas
Thanks, applied. On Tue, Dec 27, 2011 at 15:11, Avi Kivity <avi@redhat.com> wrote: > C99 appears to consider compound literals as non-constants, and complains > when they are used in static initializers. Switch to ordinary initializer > syntax. > > Signed-off-by: Avi Kivity <avi@redhat.com> > --- > fpu/softfloat-specialize.h | 8 ++++---- > fpu/softfloat.h | 2 ++ > 2 files changed, 6 insertions(+), 4 deletions(-) > > diff --git a/fpu/softfloat-specialize.h b/fpu/softfloat-specialize.h > index c5e2dab..4902450 100644 > --- a/fpu/softfloat-specialize.h > +++ b/fpu/softfloat-specialize.h > @@ -89,8 +89,8 @@ const float64 float64_default_nan = const_float64(LIT64( 0xFFF8000000000000 )); > #define floatx80_default_nan_low LIT64( 0xC000000000000000 ) > #endif > > -const floatx80 floatx80_default_nan = make_floatx80(floatx80_default_nan_high, > - floatx80_default_nan_low); > +const floatx80 floatx80_default_nan > + = make_floatx80_init(floatx80_default_nan_high, floatx80_default_nan_low); > > /*---------------------------------------------------------------------------- > | The pattern for a default generated quadruple-precision NaN. The `high' and > @@ -104,8 +104,8 @@ const floatx80 floatx80_default_nan = make_floatx80(floatx80_default_nan_high, > #define float128_default_nan_low LIT64( 0x0000000000000000 ) > #endif > > -const float128 float128_default_nan = make_float128(float128_default_nan_high, > - float128_default_nan_low); > +const float128 float128_default_nan > + = make_float128_init(float128_default_nan_high, float128_default_nan_low); > > /*---------------------------------------------------------------------------- > | Raises the exceptions specified by `flags'. Floating-point traps can be > diff --git a/fpu/softfloat.h b/fpu/softfloat.h > index 07c2929..2ce4110 100644 > --- a/fpu/softfloat.h > +++ b/fpu/softfloat.h > @@ -129,6 +129,7 @@ typedef struct { > uint16_t high; > } floatx80; > #define make_floatx80(exp, mant) ((floatx80) { mant, exp }) > +#define make_floatx80_init(exp, mant) { .low = mant, .high = exp } > typedef struct { > #ifdef HOST_WORDS_BIGENDIAN > uint64_t high, low; > @@ -137,6 +138,7 @@ typedef struct { > #endif > } float128; > #define make_float128(high_, low_) ((float128) { .high = high_, .low = low_ }) > +#define make_float128_init(high_, low_) { .high = high_, .low = low_ } > > /*---------------------------------------------------------------------------- > | Software IEC/IEEE floating-point underflow tininess-detection mode. > -- > 1.7.7.1 > >
diff --git a/fpu/softfloat-specialize.h b/fpu/softfloat-specialize.h index c5e2dab..4902450 100644 --- a/fpu/softfloat-specialize.h +++ b/fpu/softfloat-specialize.h @@ -89,8 +89,8 @@ const float64 float64_default_nan = const_float64(LIT64( 0xFFF8000000000000 )); #define floatx80_default_nan_low LIT64( 0xC000000000000000 ) #endif -const floatx80 floatx80_default_nan = make_floatx80(floatx80_default_nan_high, - floatx80_default_nan_low); +const floatx80 floatx80_default_nan + = make_floatx80_init(floatx80_default_nan_high, floatx80_default_nan_low); /*---------------------------------------------------------------------------- | The pattern for a default generated quadruple-precision NaN. The `high' and @@ -104,8 +104,8 @@ const floatx80 floatx80_default_nan = make_floatx80(floatx80_default_nan_high, #define float128_default_nan_low LIT64( 0x0000000000000000 ) #endif -const float128 float128_default_nan = make_float128(float128_default_nan_high, - float128_default_nan_low); +const float128 float128_default_nan + = make_float128_init(float128_default_nan_high, float128_default_nan_low); /*---------------------------------------------------------------------------- | Raises the exceptions specified by `flags'. Floating-point traps can be diff --git a/fpu/softfloat.h b/fpu/softfloat.h index 07c2929..2ce4110 100644 --- a/fpu/softfloat.h +++ b/fpu/softfloat.h @@ -129,6 +129,7 @@ typedef struct { uint16_t high; } floatx80; #define make_floatx80(exp, mant) ((floatx80) { mant, exp }) +#define make_floatx80_init(exp, mant) { .low = mant, .high = exp } typedef struct { #ifdef HOST_WORDS_BIGENDIAN uint64_t high, low; @@ -137,6 +138,7 @@ typedef struct { #endif } float128; #define make_float128(high_, low_) ((float128) { .high = high_, .low = low_ }) +#define make_float128_init(high_, low_) { .high = high_, .low = low_ } /*---------------------------------------------------------------------------- | Software IEC/IEEE floating-point underflow tininess-detection mode.
C99 appears to consider compound literals as non-constants, and complains when they are used in static initializers. Switch to ordinary initializer syntax. Signed-off-by: Avi Kivity <avi@redhat.com> --- fpu/softfloat-specialize.h | 8 ++++---- fpu/softfloat.h | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-)