diff options
Diffstat (limited to 'gcc/testsuite')
29 files changed, 55 insertions, 1130 deletions
diff --git a/gcc/testsuite/ChangeLog.apple-ppc b/gcc/testsuite/ChangeLog.apple-ppc index 67dcdc681d2..2d125605d83 100644 --- a/gcc/testsuite/ChangeLog.apple-ppc +++ b/gcc/testsuite/ChangeLog.apple-ppc @@ -1,3 +1,36 @@ +2006-04-28 Eric Christopher <echristo@apple.com> + + Radar 4454599 + * gcc.apple/bitreverse-13.c: Remove. + * gcc.apple/bitreverse-19.c: Ditto. + * gcc.apple/bitreverse-2.c: Ditto. + * gcc.apple/bitreverse-20.c: Ditto. + * gcc.apple/bitreverse-21.c: Ditto. + * gcc.apple/bitreverse-24.c: Ditto. + * gcc.apple/bitreverse-27.c: Ditto. + * gcc.apple/bitreverse-4.c: Ditto. + * gcc.apple/bitreverse-5.c: Ditto. + * gcc.apple/bitreverse-6.c: Ditto. + * gcc.apple/bitreverse-7.c: Ditto. + * gcc.apple/bitreverse-8.c: Ditto. + * gcc.apple/bitreverse-18.c: Add #pragma ms_struct + to locations where we turn on pragma reverse_bitfields. + * gcc.apple/bitreverse-3.c: Ditto. + * gcc.apple/bitreverse-11.c: Ditto. + * gcc.apple/bitreverse-15.c: Ditto. + * gcc.apple/bitreverse-12.c: Ditto. + * gcc.apple/bitreverse-16.c: Ditto. + * gcc.apple/bitreverse-25.c: Ditto. + * gcc.apple/bitreverse-1.c: Ditto. + * gcc.apple/bitreverse-9.c: Ditto. + * gcc.apple/bitreverse-17.c: Ditto. + * gcc.apple/bitreverse-22.c: Ditto. + * gcc.apple/bitreverse-26.c: Ditto. + * gcc.apple/bitreverse-10.c: Ditto. + * gcc.apple/bitreverse-14.c: Ditto. + * g++.dg/bitreverse-10.C: Ditto. + * g++.dg/bitreverse-23.C: Ditto. + 2006-04-27 Hui-May Chang <hm.chang@apple.com> Radar 4314956 diff --git a/gcc/testsuite/g++.dg/bitreverse-10.C b/gcc/testsuite/g++.dg/bitreverse-10.C index 8e22c88b63e..28f9cb60d77 100644 --- a/gcc/testsuite/g++.dg/bitreverse-10.C +++ b/gcc/testsuite/g++.dg/bitreverse-10.C @@ -3,10 +3,10 @@ extern "C" void abort(); typedef struct TestStateNorm { - unsigned int fBlah : 7; // + unsigned int fBlah : 7; // unsigned int fUnused : 2; // Currently Unused unsigned int : 0; - unsigned int fBlah2 : 7; // + unsigned int fBlah2 : 7; // unsigned int fUnused2: 2; // Currently Unused } TestStateNorm; @@ -18,12 +18,13 @@ union u1 { } unorm = { 5, 1, 6, 2 }; #pragma reverse_bitfields on -typedef struct TestState +#pragma ms_struct on +typedef struct TestState { - unsigned int fBlah : 7; // + unsigned int fBlah : 7; // unsigned int fUnused : 2; // Currently Unused unsigned int : 0; - unsigned int fBlah2 : 7; // + unsigned int fBlah2 : 7; // unsigned int fUnused2 : 2; // Currently Unused } TestState; diff --git a/gcc/testsuite/g++.dg/bitreverse-23.C b/gcc/testsuite/g++.dg/bitreverse-23.C index 50710b9dab8..b8df433702f 100644 --- a/gcc/testsuite/g++.dg/bitreverse-23.C +++ b/gcc/testsuite/g++.dg/bitreverse-23.C @@ -4,7 +4,8 @@ extern "C" void abort(); /* Check that layout works in presence of things other than data members. */ #pragma reverse_bitfields on -class X { +#pragma ms_struct on +class X { public: int x : 8; static int y; diff --git a/gcc/testsuite/gcc.apple/bitreverse-1.c b/gcc/testsuite/gcc.apple/bitreverse-1.c index 4a38bca6bb6..8a012f49c26 100644 --- a/gcc/testsuite/gcc.apple/bitreverse-1.c +++ b/gcc/testsuite/gcc.apple/bitreverse-1.c @@ -25,6 +25,7 @@ #pragma reverse_bitfields on +#pragma ms_struct on typedef struct { diff --git a/gcc/testsuite/gcc.apple/bitreverse-10.c b/gcc/testsuite/gcc.apple/bitreverse-10.c index 06fd4db922b..2656ed24ade 100644 --- a/gcc/testsuite/gcc.apple/bitreverse-10.c +++ b/gcc/testsuite/gcc.apple/bitreverse-10.c @@ -19,6 +19,7 @@ union { } unorm = { 5, 1, 6, 2 }; #pragma reverse_bitfields on +#pragma ms_struct on typedef struct TestState { unsigned int fBlah : 7; // diff --git a/gcc/testsuite/gcc.apple/bitreverse-11.c b/gcc/testsuite/gcc.apple/bitreverse-11.c index 70e63c2d7ec..6af03f5275d 100644 --- a/gcc/testsuite/gcc.apple/bitreverse-11.c +++ b/gcc/testsuite/gcc.apple/bitreverse-11.c @@ -6,6 +6,7 @@ extern void abort(void); #pragma reverse_bitfields on +#pragma ms_struct on typedef struct { diff --git a/gcc/testsuite/gcc.apple/bitreverse-12.c b/gcc/testsuite/gcc.apple/bitreverse-12.c index 3e8d5d8c6a8..d28615106cd 100644 --- a/gcc/testsuite/gcc.apple/bitreverse-12.c +++ b/gcc/testsuite/gcc.apple/bitreverse-12.c @@ -4,6 +4,7 @@ /* { dg-options "-w" } */ #pragma reverse_bitfields on +#pragma ms_struct on #pragma pack(1) typedef struct _bee diff --git a/gcc/testsuite/gcc.apple/bitreverse-13.c b/gcc/testsuite/gcc.apple/bitreverse-13.c deleted file mode 100644 index 5d3d153f682..00000000000 --- a/gcc/testsuite/gcc.apple/bitreverse-13.c +++ /dev/null @@ -1,233 +0,0 @@ -/* APPLE LOCAL file 4350099 */ -/* { dg-do run { target powerpc*-*-darwin* } } */ -extern void abort (); -extern int printf(const char *, ...); -typedef struct _foo1 FOO1; - -struct _foo1 -{ - unsigned int fTab:1, - fSpace:1, - fComma:1, - fSemiColon:1, - fCustom:1, - fConsecutive:1, - iTextDelm:2, - chCustom:16; -}; - -FOO1 vDelim1 = {1, 0, 0, 0, 0, 0, 0, 0}; -void f1() { - union { - unsigned int x; - FOO1 y; - } u; - u.y = vDelim1; - if (u.x != 0x80000000U) - abort (); -} -/***********************************************/ -#pragma reverse_bitfields on - -typedef struct _foo2 FOO2; - -struct _foo2 -{ - unsigned int fTab:1, - fSpace:1, - fComma:1, - fSemiColon:1, - fCustom:1, - fConsecutive:1, - iTextDelm:2, - chCustom:16; -}; - -FOO2 vDelim2 = {1, 0, 0, 0, 0, 0, 0, 0}; -void f2() { - union { - unsigned int x; - FOO2 y; - } u; - u.y = vDelim2; - if (u.x != 1) - abort(); -} -#pragma reverse_bitfields off -/****************************************************/ -#pragma reverse_bitfields on - -typedef struct _foo3 FOO3; - -#pragma reverse_bitfields off -struct _foo3 -{ - unsigned int fTab:1, - fSpace:1, - fComma:1, - fSemiColon:1, - fCustom:1, - fConsecutive:1, - iTextDelm:2, - chCustom:16; -}; - -FOO3 vDelim3 = {1, 0, 0, 0, 0, 0, 0, 0}; -void f3() { - union { - unsigned int x; - FOO3 y; - } u; - u.y = vDelim3; - if (u.x != 0x80000000U) - abort (); -} -#pragma reverse_bitfields off -/****************************************************/ -#pragma reverse_bitfields on - -struct _foo4 -{ - unsigned int fTab:1, - fSpace:1, - fComma:1, - fSemiColon:1, - fCustom:1, - fConsecutive:1, - iTextDelm:2, - chCustom:16; -}; - -typedef struct _foo4 FOO4; - -FOO4 vDelim4 = {1, 0, 0, 0, 0, 0, 0, 0}; -void f4() { - union { - unsigned int x; - FOO4 y; - } u; - u.y = vDelim4; - if (u.x != 1) - abort(); -} -#pragma reverse_bitfields off -/****************************************************/ -#pragma reverse_bitfields on - -struct _foo5 -{ - unsigned int fTab:1, - fSpace:1, - fComma:1, - fSemiColon:1, - fCustom:1, - fConsecutive:1, - iTextDelm:2, - chCustom:16; -}; - -#pragma reverse_bitfields off -typedef struct _foo5 FOO5; - -FOO5 vDelim5 = {1, 0, 0, 0, 0, 0, 0, 0}; -void f5() { - union { - unsigned int x; - FOO5 y; - } u; - u.y = vDelim5; - if (u.x != 1) - abort(); -} -#pragma reverse_bitfields off -/****************************************************/ -#pragma reverse_bitfields off - -typedef struct _foo6 FOO6; - -#pragma reverse_bitfields on -struct _foo6 -{ - unsigned int fTab:1, - fSpace:1, - fComma:1, - fSemiColon:1, - fCustom:1, - fConsecutive:1, - iTextDelm:2, - chCustom:16; -}; - -FOO6 vDelim6 = {1, 0, 0, 0, 0, 0, 0, 0}; -void f6() { - union { - unsigned int x; - FOO6 y; - } u; - u.y = vDelim6; - if (u.x != 1) - abort(); -} -#pragma reverse_bitfields off -/****************************************************/ -#pragma reverse_bitfields off - -struct _foo7 -{ - unsigned int fTab:1, - fSpace:1, - fComma:1, - fSemiColon:1, - fCustom:1, - fConsecutive:1, - iTextDelm:2, - chCustom:16; -}; - -typedef struct _foo7 FOO7; - -FOO7 vDelim7 = {1, 0, 0, 0, 0, 0, 0, 0}; -void f7() { - union { - unsigned int x; - FOO7 y; - } u; - u.y = vDelim7; - if (u.x != 0x80000000U) - abort (); -} -#pragma reverse_bitfields off -/****************************************************/ -#pragma reverse_bitfields off - -struct _foo8 -{ - unsigned int fTab:1, - fSpace:1, - fComma:1, - fSemiColon:1, - fCustom:1, - fConsecutive:1, - iTextDelm:2, - chCustom:16; -}; - -#pragma reverse_bitfields on -typedef struct _foo8 FOO8; - -FOO8 vDelim8 = {1, 0, 0, 0, 0, 0, 0, 0}; -void f8() { - union { - unsigned int x; - FOO8 y; - } u; - u.y = vDelim8; - if (u.x != 0x80000000U) - abort (); -} -#pragma reverse_bitfields off -/****************************************************/ -main() { - f1(); f2(); f3(); f4(); f5(); f6(); f7(); f8(); - return 0; -} diff --git a/gcc/testsuite/gcc.apple/bitreverse-14.c b/gcc/testsuite/gcc.apple/bitreverse-14.c index 4b7790cf824..ed73891c9b9 100644 --- a/gcc/testsuite/gcc.apple/bitreverse-14.c +++ b/gcc/testsuite/gcc.apple/bitreverse-14.c @@ -2,6 +2,7 @@ /* { dg-do compile { target powerpc*-*-darwin* } } */ /* { dg-options "-std=gnu99" } */ #pragma reverse_bitfields on +#pragma ms_struct on #pragma pack(push, 1) typedef struct _kyc diff --git a/gcc/testsuite/gcc.apple/bitreverse-15.c b/gcc/testsuite/gcc.apple/bitreverse-15.c index 80f544445e0..6303aa20dcd 100644 --- a/gcc/testsuite/gcc.apple/bitreverse-15.c +++ b/gcc/testsuite/gcc.apple/bitreverse-15.c @@ -3,6 +3,7 @@ /* { dg-options "-std=gnu99" } */ extern void abort(); #pragma reverse_bitfields on +#pragma ms_struct on #pragma pack(push,2) typedef struct _S2 { diff --git a/gcc/testsuite/gcc.apple/bitreverse-16.c b/gcc/testsuite/gcc.apple/bitreverse-16.c index ee9876b02aa..d3ef99f02f9 100644 --- a/gcc/testsuite/gcc.apple/bitreverse-16.c +++ b/gcc/testsuite/gcc.apple/bitreverse-16.c @@ -3,6 +3,7 @@ extern void abort(); /* { dg-do run { target powerpc*-*-darwin* } } */ /* { dg-options "-std=gnu99" } */ #pragma reverse_bitfields on +#pragma ms_struct on #pragma pack(push,2) typedef struct _S5 diff --git a/gcc/testsuite/gcc.apple/bitreverse-17.c b/gcc/testsuite/gcc.apple/bitreverse-17.c index bfc0c0f5a34..f6cf1ce0bd6 100644 --- a/gcc/testsuite/gcc.apple/bitreverse-17.c +++ b/gcc/testsuite/gcc.apple/bitreverse-17.c @@ -5,6 +5,7 @@ /* { dg-options "-std=gnu99" } */ #pragma reverse_bitfields on +#pragma ms_struct on struct empty {}; struct uc0 { unsigned char content[0]; }; @@ -69,4 +70,3 @@ int main() { return 42; return 0; } -
\ No newline at end of file diff --git a/gcc/testsuite/gcc.apple/bitreverse-18.c b/gcc/testsuite/gcc.apple/bitreverse-18.c index 8103aa080f7..e1ece81b781 100644 --- a/gcc/testsuite/gcc.apple/bitreverse-18.c +++ b/gcc/testsuite/gcc.apple/bitreverse-18.c @@ -9,6 +9,7 @@ typedef unsigned short WORD; typedef unsigned int DWORD; #pragma reverse_bitfields on +#pragma ms_struct on #define USE_STRUCT_WRAPPER 0 diff --git a/gcc/testsuite/gcc.apple/bitreverse-19.c b/gcc/testsuite/gcc.apple/bitreverse-19.c deleted file mode 100644 index 596c6745375..00000000000 --- a/gcc/testsuite/gcc.apple/bitreverse-19.c +++ /dev/null @@ -1,44 +0,0 @@ -/* APPLE LOCAL file 4430139 */ - -/* CW layout of this one is truly bizarre: - 0000000000aaaaaabbbbbbbbbb000000 - 0000000000cccccccccccccccccccccc -*/ - -extern void abort(); -/* { dg-do run { target powerpc*-*-darwin* } } */ -/* { dg-options "-std=gnu99" } */ -typedef unsigned short WORD; -typedef unsigned int DWORD; - -#pragma reverse_bitfields on - -#define USE_STRUCT_WRAPPER 0 - -#pragma pack(push, 2) -typedef struct -{ - short a : 6; - int b : 10; - int c : 22; -} Foo; -typedef union { Foo x; int y[6]; } u1; -#pragma pack(pop) - - -int main(int argc, char* argv[]) -{ - int i; - u1 U; - for (i=0; i<6; i++) - U.y[i] = 0; - U.x.a = 1; - U.x.b = 3; - U.x.c = 5; - - if (sizeof(Foo) != 8 - || U.y[0] != 0x000100c0 - || U.y[1] != 0x00000005) - abort(); - return 0; -} diff --git a/gcc/testsuite/gcc.apple/bitreverse-2.c b/gcc/testsuite/gcc.apple/bitreverse-2.c deleted file mode 100644 index ef74d8eb3ea..00000000000 --- a/gcc/testsuite/gcc.apple/bitreverse-2.c +++ /dev/null @@ -1,88 +0,0 @@ -/* APPLE LOCAL file */ -#include <stdio.h> -#include <string.h> - -/* Tests interleaving of bitfields and non-bitfields. Note that they - overlap, so the code cannot possibly work, but bug compability is - the requirement. */ - -/* { dg-do run { target powerpc*-*-darwin* } } */ - -#pragma reverse_bitfields on - -typedef struct -{ - union - { - unsigned int i1; - struct - { - unsigned int b1: 1; - unsigned int b2: 2; - unsigned int b3: 4; - unsigned int b4: 8; - unsigned int b5: 16; - } bits; - } u1; - char baz; - union - { - struct - { - unsigned int i2; - unsigned int i3; - unsigned int i4; - } ints; - - struct - { - unsigned int b1: 16; - unsigned int b2: 8; - unsigned int b3: 4; - unsigned int b4: 2; - unsigned int b5: 1; - char baz; - unsigned int b6: 2; - unsigned int b7: 4; - char baz2; - unsigned int b8: 8; - unsigned int b9: 16; - } bits; - } u2; -} Bitfields; - - -int main() -{ - Bitfields bitfields; - - - memset(&bitfields, 0, sizeof(bitfields)); - - bitfields.u1.bits.b1 = 1; - bitfields.u1.bits.b2 = 1; - bitfields.u1.bits.b3 = 1; - bitfields.u1.bits.b4 = 1; - bitfields.u1.bits.b5 = 1; - bitfields.baz = 0x55; - bitfields.u2.bits.b1 = 1; - bitfields.u2.bits.b2 = 1; - bitfields.u2.bits.b3 = 1; - bitfields.u2.bits.b4 = 1; - bitfields.u2.bits.b5 = 1; - bitfields.u2.bits.baz = 0xaa; /* { dg-warning "overflow in implicit constant conversion" } */ - bitfields.u2.bits.b6 = 1; - bitfields.u2.bits.b7 = 1; - bitfields.u2.bits.baz2 = 0x33; - bitfields.u2.bits.b8 = 1; - bitfields.u2.bits.b9 = 1; - - if (bitfields.u1.i1 != 0x0000808b - || bitfields.baz != 0x55 - || bitfields.u2.ints.i2 != 0x51010001 - || bitfields.u2.ints.i3 != 0x01003300 - || bitfields.u2.ints.i4 != 0x00000001 - || sizeof(bitfields) != 20) - return 42; - return 0; -} diff --git a/gcc/testsuite/gcc.apple/bitreverse-20.c b/gcc/testsuite/gcc.apple/bitreverse-20.c deleted file mode 100644 index 5e7726d3416..00000000000 --- a/gcc/testsuite/gcc.apple/bitreverse-20.c +++ /dev/null @@ -1,38 +0,0 @@ -/* APPLE LOCAL file 4430139 */ -/* Same as bitreverse-19 without #pragma pack; it makes - no difference in this case. */ - -extern void abort(); -/* { dg-do run { target powerpc*-*-darwin* } } */ -/* { dg-options "-std=gnu99" } */ -typedef unsigned short WORD; -typedef unsigned int DWORD; - -#pragma reverse_bitfields on - -#define USE_STRUCT_WRAPPER 0 - -typedef struct -{ - short a : 6; - int b : 10; - int c : 22; -} Foo; -typedef union { Foo x; int y[6]; } u1; - -int main(int argc, char* argv[]) -{ - int i; - u1 U; - for (i=0; i<6; i++) - U.y[i] = 0; - U.x.a = 1; - U.x.b = 3; - U.x.c = 5; - - if (sizeof(Foo) != 8 - || U.y[0] != 0x000100c0 - || U.y[1] != 0x00000005) - abort(); - return 0; -} diff --git a/gcc/testsuite/gcc.apple/bitreverse-21.c b/gcc/testsuite/gcc.apple/bitreverse-21.c deleted file mode 100644 index 7b109f74e99..00000000000 --- a/gcc/testsuite/gcc.apple/bitreverse-21.c +++ /dev/null @@ -1,145 +0,0 @@ -/* APPLE LOCAL file from 4431497 */ -/* Some truly bizarre layouts by CW. */ -/* { dg-do run { target powerpc*-*-darwin* } } */ -/* { dg-options "-std=gnu99" } */ -extern void abort(); -#pragma reverse_bitfields on - -#pragma pack(push,1) -typedef struct _S3 -{ - unsigned char c1 : 8; - unsigned short s1 : 8; - unsigned short s2 : 8; -} S3; - -typedef struct _S3W -{ - S3 s3; - unsigned char c; -}S3W; -/* c1 and s1 overlap. c and s2 overlap. - Size is 3 although 4 bytes are accessed. */ -#pragma pack(pop) - -typedef union u3 { S3W ss; unsigned int v[6]; } U3; - -int TestS3(void) -{ - U3 u = {0}; - u.ss.s3.c1 = 0x56; - u.ss.s3.s1 = 0x78; - u.ss.c = 0x90; - u.ss.s3.s2 = 0xab; - - if (sizeof(S3) != 3 || sizeof(S3W) != 4 || - u.ss.s3.s1 != 0x78 || u.ss.s3.s2 != 0xab || - u.ss.s3.c1 != 0x78 || u.ss.c != 0xab || - u.v[0] != 0x780000ab || u.v[1] != 0x00000000) - abort(); - return 0; -} - -#pragma pack(push, 2) -typedef struct _S4 -{ - unsigned char c1 : 8; - unsigned short s1 : 8; - unsigned short s2 : 8; -} S4; - -typedef struct _S4W -{ - S4 s4; - unsigned char c; -}S4W; -/* c1 and s1 overlap. */ -#pragma pack(pop) - -typedef union u4 { S4W ss; unsigned int v[6]; } U4; - -int TestS4(void) -{ - U4 u = {0}; - u.ss.s4.c1 = 0x56; - u.ss.s4.s1 = 0x78; - u.ss.s4.s2 = 0xab; - u.ss.c = 0x90; - - if (sizeof(S4) != 4 || sizeof(S4W) != 6 || - u.ss.s4.s1 != 0x78 || u.ss.s4.s2 != 0xab || - u.ss.s4.c1 != 0x78 || u.ss.c != 0x90 || - u.v[0] != 0x780000ab || u.v[1] != 0x90000000) - abort(); - return 0; -} - -#pragma pack(push,1) -typedef struct _S5 -{ - unsigned short s : 16; - unsigned int l1 : 16; - unsigned int l2 : 16; -} S5; - -typedef struct _S5W -{ - S5 s5; - unsigned short s; -}S5W; -/* l1 and s5.s overlap. l2 and s overlap. Size is 6 - although 8 bytes are referenced. */ -#pragma pack(pop) - -typedef union u5 { S5W ss; unsigned int v[6]; } U5; - -int TestS5(void) -{ - U5 u = {0}; - u.ss.s5.s = 0x5678; - u.ss.s5.l1 = 0x1289; - u.ss.s = 0xabcd; - u.ss.s5.l2 = 0xfe34; - if (sizeof(S5) != 6 || sizeof(S5W) != 8 || - u.ss.s5.l1 != 0x1289 || u.ss.s5.l2 != 0xfe34 || - u.ss.s5.s != 0x1289 || u.ss.s != 0xfe34 || - u.v[0] != 0x12890000 || u.v[1] != 0x0000fe34 || u.v[2] != 0x00000000) - abort(); - return 0; -} - -#pragma pack(push,2) -typedef struct _S6 -{ - unsigned short s : 16; - unsigned int l1 : 16; - unsigned int l2 : 16; -} S6; - -typedef struct _S6W -{ - S6 s6; - unsigned short s; -}S6W; -#pragma pack(pop) - -typedef union u6 { S6W ss; unsigned int v[6]; } U6; - -int TestS6(void) -{ - U6 u = {0}; - u.ss.s6.s = 0x5678; - u.ss.s6.l1 = 0x9123; - u.ss.s = 0xabcd; - u.ss.s6.l2 = 0xef04; - if (sizeof(S6) != 8 || sizeof(S6W) != 10 || - u.ss.s6.l1 != 0x9123 || u.ss.s6.l2 != 0xef04 || - u.ss.s6.s != 0x9123 || u.ss.s != 0xabcd || - u.v[0] != 0x91230000 || u.v[1] != 0x0000ef04 || u.v[2] != 0xabcd0000) - abort(); - return 0; -} -int main() -{ - return TestS3() + TestS4() + TestS5() + TestS6(); -} diff --git a/gcc/testsuite/gcc.apple/bitreverse-22.c b/gcc/testsuite/gcc.apple/bitreverse-22.c index 949a1245745..faa92be0602 100644 --- a/gcc/testsuite/gcc.apple/bitreverse-22.c +++ b/gcc/testsuite/gcc.apple/bitreverse-22.c @@ -5,6 +5,7 @@ extern void abort(); /* { dg-options "-std=gnu99" } */ #pragma reverse_bitfields on +#pragma ms_struct on typedef struct _S5 { diff --git a/gcc/testsuite/gcc.apple/bitreverse-24.c b/gcc/testsuite/gcc.apple/bitreverse-24.c deleted file mode 100644 index 5a3f9e5f876..00000000000 --- a/gcc/testsuite/gcc.apple/bitreverse-24.c +++ /dev/null @@ -1,77 +0,0 @@ -/* APPLE LOCAL file 4430139 */ -extern void abort(); -#include <string.h> -/* This is bitreverse-18 with d and e switched. - Note that this changes the layout and even the size. */ - -/* { dg-do run { target powerpc*-*-darwin* } } */ -/* { dg-options "-std=gnu99" } */ - -typedef unsigned short WORD; -typedef unsigned int DWORD; - -#pragma reverse_bitfields on - -#define USE_STRUCT_WRAPPER 0 - -#pragma pack(push, 2) -typedef struct -{ - DWORD a; -#if USE_STRUCT_WRAPPER - struct { -#endif - WORD b:2, - c:14; -#if USE_STRUCT_WRAPPER - }; -#endif - DWORD d:10, - e:22; - DWORD f; - DWORD g:25, - h:1, - i:6; -#if USE_STRUCT_WRAPPER - struct { -#endif - WORD j:14, - k:2; -#if USE_STRUCT_WRAPPER - }; -#endif -} Foo; -typedef union { Foo x; int y[6]; } u1; -#pragma pack(pop) - - -int main(int argc, char* argv[]) -{ - Foo foo; - int i; - u1 U; - memset (&U, 0, sizeof(u1)); - U.x.a = 1; - U.x.b = 1; - U.x.c = 1; - U.x.d = 1; - U.x.e = 1; - U.x.f = 1; - U.x.g = 1; - U.x.h = 1; - U.x.i = 1; - U.x.j = 1; - U.x.k = 1; - - int s = sizeof(Foo); - - if (sizeof(Foo) != 22 - || U.y[0] != 0x00000001 - || U.y[1] != 0x00010000 - || U.y[2] != 0x00000001 - || U.y[3] != 0x00000001 - || U.y[4] != 0x06000001 - || U.y[5] != 0x40010000) - abort(); - return 0; -} diff --git a/gcc/testsuite/gcc.apple/bitreverse-25.c b/gcc/testsuite/gcc.apple/bitreverse-25.c index a41515f9d98..f77ba1ad2ff 100644 --- a/gcc/testsuite/gcc.apple/bitreverse-25.c +++ b/gcc/testsuite/gcc.apple/bitreverse-25.c @@ -3,6 +3,7 @@ extern void abort(); /* { dg-do run { target powerpc*-*-darwin* } } */ /* { dg-options "-std=gnu99" } */ #pragma reverse_bitfields on +#pragma ms_struct on #pragma pack(push,1) typedef struct _S2 diff --git a/gcc/testsuite/gcc.apple/bitreverse-26.c b/gcc/testsuite/gcc.apple/bitreverse-26.c index 30791498329..e65b5da1262 100644 --- a/gcc/testsuite/gcc.apple/bitreverse-26.c +++ b/gcc/testsuite/gcc.apple/bitreverse-26.c @@ -3,6 +3,7 @@ extern void abort(); /* { dg-do run { target powerpc*-*-darwin* } } */ /* { dg-options "-std=gnu99" } */ #pragma reverse_bitfields on +#pragma ms_struct on #pragma pack(push,1) typedef struct _S2 diff --git a/gcc/testsuite/gcc.apple/bitreverse-27.c b/gcc/testsuite/gcc.apple/bitreverse-27.c deleted file mode 100644 index d313bd6cccd..00000000000 --- a/gcc/testsuite/gcc.apple/bitreverse-27.c +++ /dev/null @@ -1,37 +0,0 @@ -/* APPLE LOCAL file 4436477 */ -extern void abort(); -/* { dg-do run { target powerpc*-*-darwin* } } */ -/* { dg-options "-std=gnu99" } */ - -#pragma reverse_bitfields on - -typedef struct _S5 -{ - unsigned long l1 : 16; - unsigned long l2 : 16; - unsigned char c1; - unsigned short s1 : 8; - unsigned short s2 : 8; - unsigned char c2; -} S5; - -union U { S5 ss; unsigned int x[4]; }; - -int TestS5(void) -{ - union U u = {0}; - - u.ss.c1 = 0x56; - u.ss.c2 = 0x78; - - if (sizeof(S5) != 8 || - u.ss.s1 != 0x56 || u.ss.s2 != 0x78 || - u.x[0] != 0x0000000 || u.x[1] != 0x56000078 || u.x[2] != 0x00000000) - abort(); - return 0; -} - -int main() -{ - return TestS5(); -} diff --git a/gcc/testsuite/gcc.apple/bitreverse-3.c b/gcc/testsuite/gcc.apple/bitreverse-3.c index 034d120f6ba..9b79f0edfe2 100644 --- a/gcc/testsuite/gcc.apple/bitreverse-3.c +++ b/gcc/testsuite/gcc.apple/bitreverse-3.c @@ -48,6 +48,7 @@ typedef struct } u2; } Bitfields; +#pragma ms_struct on #pragma reverse_bitfields on int main() { diff --git a/gcc/testsuite/gcc.apple/bitreverse-4.c b/gcc/testsuite/gcc.apple/bitreverse-4.c deleted file mode 100644 index 1ebf5f7eb07..00000000000 --- a/gcc/testsuite/gcc.apple/bitreverse-4.c +++ /dev/null @@ -1,92 +0,0 @@ -/* APPLE LOCAL file */ -#include <stdio.h> -#include <string.h> - -/* Tests interleaving of bitfields and non-bitfields. Note that they - overlap, so the code cannot possibly work, but bug compability is - the requirement. */ - -/* { dg-do run { target powerpc*-*-darwin* } } */ - -#pragma reverse_bitfields on -typedef struct -{ - union - { - unsigned int i1; - struct - { - int b1: 1; - unsigned int b2: 2; - unsigned int b3: 4; - unsigned int b4: 8; - int b5: 16; - } bits; - } u1; - - short baz; - union - { - struct - { - unsigned int i2; - unsigned int i3; - unsigned int i4; - unsigned int i5; - } ints; - - struct - { - unsigned int b1: 16; - unsigned int b2: 8; - unsigned int b3: 4; - char quux; - unsigned int b4: 2; - unsigned int b5: 1; - short baz; - unsigned int b6: 2; - unsigned int b7: 4; - short baz2; - unsigned int b8: 8; - unsigned int b9: 16; - } bits; - } u2; -} Bitfields; - - -int main() -{ - Bitfields bitfields; - - - memset(&bitfields, 0, sizeof(bitfields)); - - bitfields.u1.bits.b1 = 1; /* { dg-warning "overflow in implicit constant conversion" } */ - bitfields.u1.bits.b2 = 1; - bitfields.u1.bits.b3 = 1; - bitfields.u1.bits.b4 = 1; - bitfields.u1.bits.b5 = 1; - bitfields.baz = 0x5555; - bitfields.u2.bits.b1 = 1; - bitfields.u2.bits.b2 = 1; - bitfields.u2.bits.b3 = 1; - bitfields.u2.bits.quux = 0xa55a; /* { dg-warning "overflow in implicit constant conversion" } */ - bitfields.u2.bits.b4 = 1; - bitfields.u2.bits.b5 = 1; - bitfields.u2.bits.baz = 0xaaaa; /* { dg-warning "overflow in implicit constant conversion" } */ - bitfields.u2.bits.b6 = 1; - bitfields.u2.bits.b7 = 1; - bitfields.u2.bits.baz2 = 0x3333; - bitfields.u2.bits.b8 = 1; - bitfields.u2.bits.b9 = 1; - - if (bitfields.u1.i1 != 0x0000808b - || bitfields.baz != 0x5555 - || bitfields.u2.ints.i2 != 0x01010001 - || bitfields.u2.ints.i3 != 0x5a00aaaa - || bitfields.u2.ints.i4 != 0x00003333 - || bitfields.u2.ints.i5 != 0x00000101 - || sizeof(bitfields) != 24) - return 42; - return 0; -} diff --git a/gcc/testsuite/gcc.apple/bitreverse-5.c b/gcc/testsuite/gcc.apple/bitreverse-5.c deleted file mode 100644 index 50c4df3879e..00000000000 --- a/gcc/testsuite/gcc.apple/bitreverse-5.c +++ /dev/null @@ -1,92 +0,0 @@ -/* APPLE LOCAL file */ -#include <stdio.h> -#include <string.h> - -/* Tests interaction with pragma pack, and interleaving of bitfields - and non-bitfields. */ - -/* { dg-do run { target powerpc*-*-darwin* } } */ - -#pragma reverse_bitfields on -typedef struct -{ - union - { - unsigned int i1; - struct - { - int b1: 1; - unsigned int b2: 2; - unsigned int b3: 4; - unsigned int b4: 8; - int b5: 16; - } bits; - } u1; - - short baz; - union - { - struct - { - unsigned int i2; - unsigned int i3; - unsigned int i4; - unsigned int i5; - } ints; - -#pragma pack(1) - struct - { - unsigned int b1: 16; - unsigned int b2: 8; - unsigned int b3: 4; - char quux; - unsigned int b4: 2; - unsigned int b5: 1; - short baz; - unsigned int b6: 2; - unsigned int b7: 4; - short baz2; - unsigned int b8: 8; - unsigned int b9: 16; - } bits; - } u2; -} Bitfields; - - -int main() -{ - Bitfields bitfields; - - - memset(&bitfields, 0, sizeof(bitfields)); - - bitfields.u1.bits.b1 = 1; /* { dg-warning "overflow in implicit constant conversion" } */ - bitfields.u1.bits.b2 = 1; - bitfields.u1.bits.b3 = 1; - bitfields.u1.bits.b4 = 1; - bitfields.u1.bits.b5 = 1; - bitfields.baz = 0x5555; - bitfields.u2.bits.b1 = 1; - bitfields.u2.bits.b2 = 1; - bitfields.u2.bits.b3 = 1; - bitfields.u2.bits.quux = 0xa55a; /* { dg-warning "overflow in implicit constant conversion" } */ - bitfields.u2.bits.b4 = 1; - bitfields.u2.bits.b5 = 1; - bitfields.u2.bits.baz = 0xaaaa; /* { dg-warning "overflow in implicit constant conversion" } */ - bitfields.u2.bits.b6 = 1; - bitfields.u2.bits.b7 = 1; - bitfields.u2.bits.baz2 = 0x3333; - bitfields.u2.bits.b8 = 1; - bitfields.u2.bits.b9 = 1; - - if (bitfields.u1.i1 != 0x0000808b - || bitfields.baz != 0x5555 - || bitfields.u2.ints.i2 != 0x01010001 - || bitfields.u2.ints.i3 != 0x5a00aaaa - || bitfields.u2.ints.i4 != 0x01333305 - || bitfields.u2.ints.i5 != 0x00000001 - || sizeof(bitfields) != 22) - return 42; - return 0; -} diff --git a/gcc/testsuite/gcc.apple/bitreverse-6.c b/gcc/testsuite/gcc.apple/bitreverse-6.c deleted file mode 100644 index d24689f4412..00000000000 --- a/gcc/testsuite/gcc.apple/bitreverse-6.c +++ /dev/null @@ -1,93 +0,0 @@ -/* APPLE LOCAL file */ -#include <stdio.h> -#include <string.h> - -/* Tests interaction with pragma pack, and interleaving of bitfields - and non-bitfields. */ - -/* { dg-do run { target powerpc*-*-darwin* } } */ - -#pragma reverse_bitfields on -typedef struct -{ - union - { - unsigned int i1; -#pragma pack(2) - struct - { - int b1: 1; - unsigned int b2: 2; - unsigned int b3: 4; - unsigned int b4: 8; - int b5: 16; - } bits; - } u1; - - short baz; - union - { - struct - { - unsigned int i2; - unsigned int i3; - unsigned int i4; - unsigned int i5; - } ints; - -#pragma pack(1) - struct - { - unsigned int b1: 16; - unsigned int b2: 8; - unsigned int b3: 4; - char quux; - unsigned int b4: 2; - unsigned int b5: 1; - short baz; - unsigned int b6: 2; - unsigned int b7: 4; - short baz2; - unsigned int b8: 8; - unsigned int b9: 16; - } bits; - } u2; -} Bitfields; - - -int main() -{ - Bitfields bitfields; - - - memset(&bitfields, 0, sizeof(bitfields)); - - bitfields.u1.bits.b1 = 1; /* { dg-warning "overflow in implicit constant conversion" } */ - bitfields.u1.bits.b2 = 1; - bitfields.u1.bits.b3 = 1; - bitfields.u1.bits.b4 = 1; - bitfields.u1.bits.b5 = 1; - bitfields.baz = 0x5555; - bitfields.u2.bits.b1 = 1; - bitfields.u2.bits.b2 = 1; - bitfields.u2.bits.b3 = 1; - bitfields.u2.bits.quux = 0xa55a; /* { dg-warning "overflow in implicit constant conversion" } */ - bitfields.u2.bits.b4 = 1; - bitfields.u2.bits.b5 = 1; - bitfields.u2.bits.baz = 0xaaaa; /* { dg-warning "overflow in implicit constant conversion" } */ - bitfields.u2.bits.b6 = 1; - bitfields.u2.bits.b7 = 1; - bitfields.u2.bits.baz2 = 0x3333; - bitfields.u2.bits.b8 = 1; - bitfields.u2.bits.b9 = 1; - - if (bitfields.u1.i1 != 0x0000808b - || bitfields.baz != 0x5555 - || bitfields.u2.ints.i2 != 0x01010001 - || bitfields.u2.ints.i3 != 0x5a00aaaa - || bitfields.u2.ints.i4 != 0x01333305 - || bitfields.u2.ints.i5 != 0x00000001 - || sizeof(bitfields) != 22) - return 42; - return 0; -} diff --git a/gcc/testsuite/gcc.apple/bitreverse-7.c b/gcc/testsuite/gcc.apple/bitreverse-7.c deleted file mode 100644 index f09076bd363..00000000000 --- a/gcc/testsuite/gcc.apple/bitreverse-7.c +++ /dev/null @@ -1,94 +0,0 @@ -/* APPLE LOCAL file */ -#include <stdio.h> -#include <string.h> - -/* Tests interaction with pragma pack, and interleaving of bitfields - and non-bitfields. */ - -/* { dg-do run { target powerpc*-*-darwin* } } */ -/* { dg-options "-std=gnu99" } */ - -#pragma reverse_bitfields on -typedef struct -{ - union - { - unsigned int i1; -#pragma pack(2) - struct - { - short b1: 1; - unsigned int b2: 2; - char b3: 4; - unsigned int b4: 8; - unsigned int b5: 16; - } bits; - } u1; - - short baz; - union - { - struct - { - unsigned int i2; - unsigned int i3; - unsigned int i4; - unsigned int i5; - } ints; - -#pragma pack(1) - struct - { - unsigned int b1: 16; - unsigned int b2: 8; - unsigned int b3: 4; - char quux; - unsigned int b4: 2; - unsigned int b5: 1; - short baz; - unsigned int b6: 2; - unsigned int b7: 4; - short baz2; - unsigned int b8: 8; - unsigned int b9: 16; - } bits; - } u2; -} Bitfields; - - -int main() -{ - Bitfields bitfields; - - - memset(&bitfields, 0, sizeof(bitfields)); - - bitfields.u1.bits.b1 = 1; - bitfields.u1.bits.b2 = 1; - bitfields.u1.bits.b3 = 1; - bitfields.u1.bits.b4 = 1; - bitfields.u1.bits.b5 = 1; - bitfields.baz = 0x5555; - bitfields.u2.bits.b1 = 1; - bitfields.u2.bits.b2 = 1; - bitfields.u2.bits.b3 = 1; - bitfields.u2.bits.quux = 0xa55a; /* { dg-warning "overflow in implicit constant conversion" } */ - bitfields.u2.bits.b4 = 1; - bitfields.u2.bits.b5 = 1; - bitfields.u2.bits.baz = 0xaaaa; - bitfields.u2.bits.b6 = 1; - bitfields.u2.bits.b7 = 1; - bitfields.u2.bits.baz2 = 0x3333; - bitfields.u2.bits.b8 = 1; - bitfields.u2.bits.b9 = 1; - - if (bitfields.u1.i1 != 0x00008082 - || bitfields.baz != 0x5555 - || bitfields.u2.ints.i2 != 0x01010001 - || bitfields.u2.ints.i3 != 0x5a00aaaa - || bitfields.u2.ints.i4 != 0x01333305 - || bitfields.u2.ints.i5 != 0x00000001 - || sizeof(bitfields) != 22) - return 42; - return 0; -} diff --git a/gcc/testsuite/gcc.apple/bitreverse-8.c b/gcc/testsuite/gcc.apple/bitreverse-8.c deleted file mode 100644 index 77f5d6c6e9d..00000000000 --- a/gcc/testsuite/gcc.apple/bitreverse-8.c +++ /dev/null @@ -1,90 +0,0 @@ -/* APPLE LOCAL file */ -#include <stdio.h> -#include <string.h> - -/* Tests interleaving of bitfields and non-bitfields. */ - -/* { dg-do run { target powerpc*-*-darwin* } } */ -/* { dg-options "-std=gnu99" } */ - -#pragma reverse_bitfields on -typedef struct -{ - union - { - unsigned int i1; - struct - { - short b1: 1; - unsigned int b2: 2; - char b3: 4; - unsigned int b4: 8; - unsigned int b5: 16; - } bits; - } u1; - - short baz; - union - { - struct - { - unsigned int i2; - unsigned int i3; - unsigned int i4; - unsigned int i5; - } ints; - - struct - { - unsigned int b1: 16; - unsigned int b2: 8; - unsigned int b3: 4; - char quux; - unsigned int b4: 2; - unsigned int b5: 1; - short baz; - unsigned int b6: 2; - unsigned int b7: 4; - short baz2; - unsigned int b8: 8; - unsigned int b9: 16; - } bits; - } u2; -} Bitfields; - - -int main() -{ - Bitfields bitfields; - - - memset(&bitfields, 0, sizeof(bitfields)); - - bitfields.u1.bits.b1 = 1; - bitfields.u1.bits.b2 = 1; - bitfields.u1.bits.b3 = 1; - bitfields.u1.bits.b4 = 1; - bitfields.u1.bits.b5 = 1; - bitfields.baz = 0x5555; - bitfields.u2.bits.b1 = 1; - bitfields.u2.bits.b2 = 1; - bitfields.u2.bits.b3 = 1; - bitfields.u2.bits.quux = 0xa55a; /* { dg-warning "overflow in implicit constant conversion" } */ - bitfields.u2.bits.b4 = 1; - bitfields.u2.bits.b5 = 1; - bitfields.u2.bits.baz = 0xaaaa; - bitfields.u2.bits.b6 = 1; - bitfields.u2.bits.b7 = 1; - bitfields.u2.bits.baz2 = 0x3333; - bitfields.u2.bits.b8 = 1; - bitfields.u2.bits.b9 = 1; - if (bitfields.u1.i1 != 0x00008082 - || bitfields.baz != 0x5555 - || bitfields.u2.ints.i2 != 0x01010001 - || bitfields.u2.ints.i3 != 0x5a00aaaa - || bitfields.u2.ints.i4 != 0x00003333 - || bitfields.u2.ints.i5 != 0x00000101 - || sizeof(bitfields) != 24) - return 42; - return 0; -} diff --git a/gcc/testsuite/gcc.apple/bitreverse-9.c b/gcc/testsuite/gcc.apple/bitreverse-9.c index f719335b17e..b9c926627a6 100644 --- a/gcc/testsuite/gcc.apple/bitreverse-9.c +++ b/gcc/testsuite/gcc.apple/bitreverse-9.c @@ -53,6 +53,7 @@ typedef struct } u2; } Bitfields; +#pragma ms_struct on #pragma reverse_bitfields on int main() { |