This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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
 {


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]