On 10/11/14 22:07, Chen Gang wrote: > 'instructions-a64.h' has unused variables for qemu which can be found by > gcc 5.0.0 or higher. and qemu needs "-Werror", and cause building break. > But they may be used by another projects (not qemu). > > So for gcc 5.0.0 or higher, need still keep them, but ignore diagnostic > (still print warning, but not break building). The related warnings: > > CXX disas/arm-a64.o > In file included from /upstream/qemu/disas/libvixl/a64/disasm-a64.h:32:0, > from disas/arm-a64.cc:20: > disas/libvixl/a64/instructions-a64.h:98:13: error: > 'vixl::kFP32PositiveInfinity' defined but not used [-Werror=unused-variable] > const float kFP32PositiveInfinity = rawbits_to_float(0x7f800000); > ^ > disas/libvixl/a64/instructions-a64.h:99:13: error: > 'vixl::kFP32NegativeInfinity' defined but not used [-Werror=unused-variable] > const float kFP32NegativeInfinity = rawbits_to_float(0xff800000); > ^ > disas/libvixl/a64/instructions-a64.h:100:14: error: > 'vixl::kFP64PositiveInfinity' defined but not used [-Werror=unused-variable] > const double kFP64PositiveInfinity = > ^ > disas/libvixl/a64/instructions-a64.h:102:14: error: > 'vixl::kFP64NegativeInfinity' defined but not used [-Werror=unused-variable] > const double kFP64NegativeInfinity = > ^ > disas/libvixl/a64/instructions-a64.h:107:21: error: > 'vixl::kFP64SignallingNaN' defined but not used [-Werror=unused-variable] > static const double kFP64SignallingNaN = > ^ > disas/libvixl/a64/instructions-a64.h:109:20: error: > 'vixl::kFP32SignallingNaN' defined but not used [-Werror=unused-variable] > static const float kFP32SignallingNaN = rawbits_to_float(0x7f800001); > ^ > disas/libvixl/a64/instructions-a64.h:112:21: error: 'vixl::kFP64QuietNaN' > defined but not used [-Werror=unused-variable] > static const double kFP64QuietNaN = > ^ > disas/libvixl/a64/instructions-a64.h:114:20: error: 'vixl::kFP32QuietNaN' > defined but not used [-Werror=unused-variable] > static const float kFP32QuietNaN = rawbits_to_float(0x7fc00001); > ^ > disas/libvixl/a64/instructions-a64.h:117:21: error: 'vixl::kFP64DefaultNaN' > defined but not used [-Werror=unused-variable] > static const double kFP64DefaultNaN = > ^ > disas/libvixl/a64/instructions-a64.h:119:20: error: 'vixl::kFP32DefaultNaN' > defined but not used [-Werror=unused-variable] > static const float kFP32DefaultNaN = rawbits_to_float(0x7fc00000); > ^ > cc1plus: all warnings being treated as errors > make: *** [disas/arm-a64.o] Error 1 > > After this patch, can pass upstream gcc 5.0.0 building (print warning, > but not break building), and fedora 20 gcc 4.8.1 building (not find
Oh, sorry, under fedora 20, it is "gcc version 4.8.3 20140624 (Red Hat 4.8.3-1) (GCC)". And the detail gcc 5.0.0 is "gcc version 5.0.0 20141003 (experimental) (GCC)" > warnings). > > Signed-off-by: Chen Gang <gang.chen.5...@gmail.com> > --- > disas/libvixl/a64/instructions-a64.h | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/disas/libvixl/a64/instructions-a64.h > b/disas/libvixl/a64/instructions-a64.h > index d5b90c5..5f707f3 100644 > --- a/disas/libvixl/a64/instructions-a64.h > +++ b/disas/libvixl/a64/instructions-a64.h > @@ -95,6 +95,12 @@ const unsigned kDoubleExponentBits = 11; > const unsigned kFloatMantissaBits = 23; > const unsigned kFloatExponentBits = 8; > > +/* For QEMU, gcc 5.0.0 or higher finds unused variables, so ignore > diagnostic */ > +#if __GNUC__ >= 5 > +#pragma GCC diagnostic push > +#pragma GCC diagnostic ignored "-Wunused-variable" > +#endif > + > const float kFP32PositiveInfinity = rawbits_to_float(0x7f800000); > const float kFP32NegativeInfinity = rawbits_to_float(0xff800000); > const double kFP64PositiveInfinity = > @@ -118,6 +124,9 @@ static const double kFP64DefaultNaN = > rawbits_to_double(UINT64_C(0x7ff8000000000000)); > static const float kFP32DefaultNaN = rawbits_to_float(0x7fc00000); > > +#if __GNUC__ >= 5 > +#pragma GCC diagnostic pop > +#endif > > enum LSDataSize { > LSByte = 0, > -- Chen Gang Open, share, and attitude like air, water, and life which God blessed