99 lines · plain
1// RUN: %clang_cc1 -fblocks -rewrite-objc -fms-extensions %s -o %t-rw.cpp2// RUN: %clang_cc1 -Werror -fsyntax-only -Wno-address-of-temporary -Wno-c++11-narrowing -std=c++11 -D"Class=void*" -D"id=void*" -D"SEL=void*" -U__declspec -D"__declspec(X)=" %t-rw.cpp3 4struct OUTSIDE {5 int i_OUTSIDE;6 double d_OUTSIDE;7};8 9 10@interface I1 {11@protected12 struct OUTSIDE ivar_I1;13 14 struct INNER_I1 {15 int i_INNER_I1;16 double d_INNER_I1;17 };18 19 struct INNER_I1 ivar_I2;20 21 struct OUTSIDE ivar_I3;22 23 struct {24 int i_noname;25 double d_noname;26 } NONAME_I4;27 28 struct {29 int i_noname;30 double d_noname;31 } NONAME_I5;32}33@end34 35@implementation I136- (void) I1_Meth {37 ivar_I1.i_OUTSIDE = 0;38 39 ivar_I2.i_INNER_I1 = 1;40 41 ivar_I3.i_OUTSIDE = 2;42 43 NONAME_I4.i_noname = 3;44 45 NONAME_I5.i_noname = 4;46}47@end48 49@interface INTF2 {50@protected51 struct OUTSIDE ivar_INTF2;52 53 struct {54 int i_noname;55 double d_noname;56 } NONAME_INTF4;57 58 59 struct OUTSIDE ivar_INTF3;60 61 struct INNER_I1 ivar_INTF4;62 63 struct {64 int i_noname;65 double d_noname;66 } NONAME_INTF5;67 68 struct INNER_INTF2 {69 int i_INNER_INTF2;70 double d_INNER_INTF2;71 };72 73 struct INNER_INTF2 ivar_INTF6, ivar_INTF7;74 75 struct INNER_INTF3 {76 int i;77 } X1,X2,X3;78 79}80@end81 82@implementation INTF283- (void) I2_Meth {84 ivar_INTF2.i_OUTSIDE = 0;85 86 ivar_INTF4.i_INNER_I1 = 1;87 88 ivar_INTF3.i_OUTSIDE = 2;89 90 NONAME_INTF4.i_noname = 3;91 92 NONAME_INTF5.i_noname = 4;93 ivar_INTF6.i_INNER_INTF2 = 5;94 ivar_INTF7.i_INNER_INTF2 = 5;95 X1.i = X2.i = X3.i = 1;96}97@end98 99