1// RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp 2// RUN: %clang_cc1 -fsyntax-only -Werror -Wno-address-of-temporary -D"Class=void*" -D"id=void*" -D"SEL=void*" -U__declspec -D"__declspec(X)=" %t-rw.cpp 3 4@interface NSCheapMutableString { 5@private 6 struct S s0; 7 union { 8 char *fat; 9 unsigned char *thin; 10 } contents; 11 12 struct { 13 unsigned int isFat:1; 14 unsigned int freeWhenDone:1; 15 unsigned int refs:30; 16 } flags; 17 18 struct S { 19 int iS1; 20 double dS1; 21 } others; 22 23 union U { 24 int iU1; 25 double dU1; 26 } u_others; 27 28 enum { 29 One, Two 30 } E1; 31 32 enum e { 33 Yes = 1, 34 No = 0 35 } BoOl; 36 37 struct S s1; 38 39 enum e E2; 40 41 union { 42 char *fat; 43 unsigned char *thin; 44 } Last_contents; 45 46 struct { 47 unsigned int isFat:1; 48 unsigned int freeWhenDone:1; 49 unsigned int refs:30; 50 } Last_flags; 51} 52@end 53 54@interface III { 55@private 56 struct S s0; 57 58 union { 59 char *fat; 60 unsigned char *thin; 61 } contents; 62 63 struct { 64 unsigned int isFat:1; 65 unsigned int freeWhenDone:1; 66 unsigned int refs:30; 67 } flags; 68 69 enum { 70 One1 = 1000, Two1, Three1 71 } E1; 72 73 struct S s1; 74 75 enum e E2; 76 77 union { 78 char *fat; 79 unsigned char *thin; 80 } Last_contents; 81 82 struct { 83 unsigned int isFat:1; 84 unsigned int freeWhenDone:1; 85 unsigned int refs:30; 86 } Last_flags; 87} 88@end 89 90enum OUTSIDE { 91 yes 92}; 93 94@interface MoreEnumTests { 95@private 96 enum INSIDE { 97 no 98 } others; 99 100 enum OUTSIDE meetoo; 101 102 enum { 103 one, 104 two 105 } eu; 106} 107@end 108 109@interface I { 110 enum INSIDE I1; 111 enum OUTSIDE I2; 112 enum ALSO_INSIDE { 113 maybe 114 } I3; 115 116 enum ALSO_INSIDE I4; 117 118 enum { 119 three, 120 four 121 } I5; 122} 123@end 124 125