re PR target/51007 (Quadmath I/O doesn't work on MinGW)
authorKai Tietz <ktietz@redhat.com>
Mon, 7 Nov 2011 22:03:51 +0000 (23:03 +0100)
committerKai Tietz <ktietz@gcc.gnu.org>
Mon, 7 Nov 2011 22:03:51 +0000 (23:03 +0100)
        PR target/51007
        * quadmath-imp.h (ieee854_float128): Adjust
        for ms-bitfield layout.

From-SVN: r181125

libquadmath/ChangeLog
libquadmath/quadmath-imp.h

index 97c15b573bf9c204444e770a5f1a876a61a0a32d..73c2c420f0030d9f3d616776f7cd48b0ff27606a 100644 (file)
@@ -1,3 +1,9 @@
+2011-11-07  Kai Tietz  <ktietz@redhat.com>
+
+       PR target/51007
+       * quadmath-imp.h (ieee854_float128): Adjust
+       for ms-bitfield layout.
+
 2011-11-02  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * printf/gmp-impl.h: Adapt path to longlong.h.
index db34a92f08f39a00131978114e1d7829f8aecc18..bac714d1c8bf5c040dab1cf5acf2f7e936301690 100644 (file)
@@ -48,6 +48,11 @@ typedef union
   __float128 value;
 
   struct
+#ifdef __MINGW32__
+  /* On mingw targets the ms-bitfields option is active by default.
+     Therefore enforce gnu-bitfield style.  */
+  __attribute__ ((gcc_struct))
+#endif
   {
 #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
     unsigned negative:1;
@@ -89,6 +94,10 @@ typedef union
   } words32;
 
   struct
+#ifdef __MINGW32__
+  /* Make sure we are using gnu-style bitfield handling.  */
+  __attribute__ ((gcc_struct))
+#endif
   {
 #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
     unsigned negative:1;