diff options
Diffstat (limited to 'test/Rewriter/rewrite-modern-ivar-access.mm')
-rw-r--r-- | test/Rewriter/rewrite-modern-ivar-access.mm | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/test/Rewriter/rewrite-modern-ivar-access.mm b/test/Rewriter/rewrite-modern-ivar-access.mm new file mode 100644 index 000000000000..4bde1a401312 --- /dev/null +++ b/test/Rewriter/rewrite-modern-ivar-access.mm @@ -0,0 +1,98 @@ +// RUN: %clang_cc1 -fblocks -rewrite-objc -fms-extensions %s -o %t-rw.cpp +// 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.cpp + +struct OUTSIDE { + int i_OUTSIDE; + double d_OUTSIDE; +}; + + +@interface I1 { +@protected + struct OUTSIDE ivar_I1; + + struct INNER_I1 { + int i_INNER_I1; + double d_INNER_I1; + }; + + struct INNER_I1 ivar_I2; + + struct OUTSIDE ivar_I3; + + struct { + int i_noname; + double d_noname; + } NONAME_I4; + + struct { + int i_noname; + double d_noname; + } NONAME_I5; +} +@end + +@implementation I1 +- (void) I1_Meth { + ivar_I1.i_OUTSIDE = 0; + + ivar_I2.i_INNER_I1 = 1; + + ivar_I3.i_OUTSIDE = 2; + + NONAME_I4.i_noname = 3; + + NONAME_I5.i_noname = 4; +} +@end + +@interface INTF2 { +@protected + struct OUTSIDE ivar_INTF2; + + struct { + int i_noname; + double d_noname; + } NONAME_INTF4; + + + struct OUTSIDE ivar_INTF3; + + struct INNER_I1 ivar_INTF4; + + struct { + int i_noname; + double d_noname; + } NONAME_INTF5; + + struct INNER_INTF2 { + int i_INNER_INTF2; + double d_INNER_INTF2; + }; + + struct INNER_INTF2 ivar_INTF6, ivar_INTF7; + + struct INNER_INTF3 { + int i; + } X1,X2,X3; + +} +@end + +@implementation INTF2 +- (void) I2_Meth { + ivar_INTF2.i_OUTSIDE = 0; + + ivar_INTF4.i_INNER_I1 = 1; + + ivar_INTF3.i_OUTSIDE = 2; + + NONAME_INTF4.i_noname = 3; + + NONAME_INTF5.i_noname = 4; + ivar_INTF6.i_INNER_INTF2 = 5; + ivar_INTF7.i_INNER_INTF2 = 5; + X1.i = X2.i = X3.i = 1; +} +@end + |