This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch testsuite g++.dg]: Reflect ABI change for windows native targets about bitfield layout in structures
2011/12/15 Dave Korn <dave.korn.cygwin@gmail.com>:
> On 15/12/2011 10:33, Kai Tietz wrote:
>
>> -// { dg-options "-mno-align-double" { target i?86-*-cygwin* i?86-*-mingw* } }
>> +// As for mingw target the the ms-bitfield switch is activated by default,
>> +// make sure for this test that it is disabled.
>> +// { dg-options "-mno-align-double -mno-ms-bitfields" { target i?86-*-cygwin* i
>> ?86-*-mingw* } }
>
> ?We don't use ms-bitfields on Cygwin, so I guess it wouldn't be expected to
> do any harm anyway, but rather than setting the same options for both wouldn't
> it be possible to do:
Yes, I added it to this clause as the switch -mno-ms-bitfields is
present for i?86-*-cygwin target too, and shouldn't cause here any
harm. But I admit that the additional option itself is superflous for
cygwin, but not for mingw.
> { dg-options "-mno-align-double" { target i?86-*-cygwin* i?86-*-mingw* } }
> { dg-additional-options "-mno-ms-bitfields" { target i?86-*-mingw* } }
>
> ... so that MinGW gets both and Cygwin only the one it wants? ?(Actually the
> first one could just as well be changed to dg-additional-options at the same
> time, couldn't it?)
Well, interesting. I think it should be the additional variant for
cygwin/mingw, as otherwise -O2 gets clobbered for it, isn't it?
So I modified patch as attached.
Cheers,
Kai
Index: bitfield3.C
===================================================================
--- bitfield3.C (revision 182092)
+++ bitfield3.C (working copy)
@@ -1,9 +1,12 @@
// Test for oversized bitfield alignment in structs on IA-32
// { dg-do run { target { { i?86-*-* x86_64-*-* } && ia32 } } }
// { dg-options "-O2" }
-// Cygwin and mingw32 default to MASK_ALIGN_DOUBLE. Override to ensure
+// Cygwin and mingw default to MASK_ALIGN_DOUBLE. Override to ensure
// 4-byte alignment.
-// { dg-options "-mno-align-double" { target i?86-*-cygwin* i?86-*-mingw* } }
+// { dg-additional-options "-mno-align-double" { target i?86-*-cygwin* i?86-*-m
ingw* } }
+// As for mingw target the the ms-bitfield switch is activated by default,
+// make sure for this test that it is disabled.
+// { dg-additional-options "-mno-ms-bitfields" { target i?86-*-mingw* } }
struct A
{