// RUN: %clang_cc1 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp // 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 @interface NSCheapMutableString { @private struct S s0; union { char *fat; unsigned char *thin; } contents; struct { unsigned int isFat:1; unsigned int freeWhenDone:1; unsigned int refs:30; } flags; struct S { int iS1; double dS1; } others; union U { int iU1; double dU1; } u_others; enum { One, Two } E1; enum e { Yes = 1, No = 0 } BoOl; struct S s1; enum e E2; union { char *fat; unsigned char *thin; } Last_contents; struct { unsigned int isFat:1; unsigned int freeWhenDone:1; unsigned int refs:30; } Last_flags; } @end @interface III { @private struct S s0; union { char *fat; unsigned char *thin; } contents; struct { unsigned int isFat:1; unsigned int freeWhenDone:1; unsigned int refs:30; } flags; enum { One1 = 1000, Two1, Three1 } E1; struct S s1; enum e E2; union { char *fat; unsigned char *thin; } Last_contents; struct { unsigned int isFat:1; unsigned int freeWhenDone:1; unsigned int refs:30; } Last_flags; } @end enum OUTSIDE { yes }; @interface MoreEnumTests { @private enum INSIDE { no } others; enum OUTSIDE meetoo; enum { one, two } eu; } @end @interface I { enum INSIDE I1; enum OUTSIDE I2; enum ALSO_INSIDE { maybe } I3; enum ALSO_INSIDE I4; enum { three, four } I5; } @end