Home | History | Annotate | Download | only in Rewriter
      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 
     90 enum 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