| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- // RUN: %clang_cc1 -fsyntax-only -fms-extensions -verify -triple x86_64-apple-darwin9 %s
- #pragma ms_struct on
- #pragma ms_struct off
- #pragma ms_struct reset
- #pragma ms_struct // expected-warning {{incorrect use of '#pragma ms_struct on|off' - ignored}}
- #pragma ms_struct on top of spaghetti // expected-warning {{extra tokens at end of '#pragma ms_struct' - ignored}}
- struct foo
- {
- int a;
- int b;
- char c;
- };
- struct {
- unsigned long bf_1 : 12;
- unsigned long : 0;
- unsigned long bf_2 : 12;
- } __attribute__((__ms_struct__)) t1;
- struct S {
- double __attribute__((ms_struct)) d; // expected-warning {{'ms_struct' attribute only applies to struct or union}}
- unsigned long bf_1 : 12;
- unsigned long : 0;
- unsigned long bf_2 : 12;
- } __attribute__((ms_struct)) t2;
- enum
- {
- A = 0,
- B,
- C
- } __attribute__((ms_struct)) e1; // expected-warning {{'ms_struct' attribute only applies to struct or union}}
- // rdar://10513599
- #pragma ms_struct on
- typedef struct
- {
- void *pv;
- int l;
- } Foo;
- typedef struct
- {
- void *pv1;
- Foo foo;
- unsigned short fInited : 1;
- void *pv2;
- } PackOddity;
- #pragma ms_struct off
- static int arr[sizeof(PackOddity) == 40 ? 1 : -1];
- struct __declspec(ms_struct) bad { // expected-warning {{__declspec attribute 'ms_struct' is not supported}}
- };
|