xref: /aosp_15_r20/external/clang/test/Rewriter/rewrite-modern-ivars-2.mm (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// RUN: %clang_cc1 -triple i386-apple-darwin9 -x objective-c++ -Wno-return-type -fblocks -fms-extensions -rewrite-objc %s -o %t-rw.cpp
2*67e74705SXin Li// RUN: %clang_cc1 -triple i386-apple-darwin9 -fsyntax-only -fblocks -Wno-address-of-temporary -D"Class=void*" -D"id=void*" -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp
3*67e74705SXin Li
4*67e74705SXin Li@interface B @end
5*67e74705SXin Li
6*67e74705SXin Li@interface A {
7*67e74705SXin Li  struct s0 {
8*67e74705SXin Li    int f0;
9*67e74705SXin Li    int f1;
10*67e74705SXin Li  } f0;
11*67e74705SXin Li  id f1;
12*67e74705SXin Li__weak B *f2;
13*67e74705SXin Li  int f3 : 5;
14*67e74705SXin Li  struct s1 {
15*67e74705SXin Li    int *f0;
16*67e74705SXin Li    int *f1;
17*67e74705SXin Li  } f4[2][1];
18*67e74705SXin Li}
19*67e74705SXin Li@end
20*67e74705SXin Li
21*67e74705SXin Li@interface C : A
22*67e74705SXin Li@property int p3;
23*67e74705SXin Li@end
24*67e74705SXin Li
25*67e74705SXin Li@implementation C
26*67e74705SXin Li@synthesize p3 = _p3;
27*67e74705SXin Li@end
28*67e74705SXin Li
29*67e74705SXin Li@interface A()
30*67e74705SXin Li@property int p0;
31*67e74705SXin Li@property (assign) __strong id p1;
32*67e74705SXin Li@property (assign) __weak id p2;
33*67e74705SXin Li@end
34*67e74705SXin Li
35*67e74705SXin Li// FIXME: Check layout for this class, once it is clear what the right
36*67e74705SXin Li// answer is.
37*67e74705SXin Li@implementation A
38*67e74705SXin Li@synthesize p0 = _p0;
39*67e74705SXin Li@synthesize p1 = _p1;
40*67e74705SXin Li@synthesize p2 = _p2;
41*67e74705SXin Li@end
42*67e74705SXin Li
43*67e74705SXin Li@interface D : A
44*67e74705SXin Li@property int p3;
45*67e74705SXin Li@end
46*67e74705SXin Li
47*67e74705SXin Li// FIXME: Check layout for this class, once it is clear what the right
48*67e74705SXin Li// answer is.
49*67e74705SXin Li@implementation D
50*67e74705SXin Li@synthesize p3 = _p3;
51*67e74705SXin Li@end
52*67e74705SXin Li
53*67e74705SXin Litypedef unsigned short UInt16;
54*67e74705SXin Li
55*67e74705SXin Li
56*67e74705SXin Litypedef signed char BOOL;
57*67e74705SXin Litypedef unsigned int FSCatalogInfoBitmap;
58*67e74705SXin Li
59*67e74705SXin Li@interface NSFileLocationComponent {
60*67e74705SXin Li    @private
61*67e74705SXin Li
62*67e74705SXin Li    id _specifierOrStandardizedPath;
63*67e74705SXin Li    BOOL _carbonCatalogInfoAndNameAreValid;
64*67e74705SXin Li    FSCatalogInfoBitmap _carbonCatalogInfoMask;
65*67e74705SXin Li    id _name;
66*67e74705SXin Li    id _containerComponent;
67*67e74705SXin Li    id _presentableName;
68*67e74705SXin Li    id _iconAsAttributedString;
69*67e74705SXin Li}
70*67e74705SXin Li@end
71*67e74705SXin Li
72*67e74705SXin Li@implementation NSFileLocationComponent @end
73*67e74705SXin Li
74*67e74705SXin Li// rdar://11229770
75*67e74705SXin Li
76*67e74705SXin Li@interface Foo {
77*67e74705SXin Li  int bar:26;
78*67e74705SXin Li}
79*67e74705SXin Li@end
80*67e74705SXin Li
81*67e74705SXin Li@implementation Foo
82*67e74705SXin Li@end
83*67e74705SXin Li
84*67e74705SXin Li@interface Foo1 {
85*67e74705SXin Li  int bar:26;
86*67e74705SXin Li  int bar2:4;
87*67e74705SXin Li}
88*67e74705SXin Li@end
89*67e74705SXin Li
90*67e74705SXin Li@implementation Foo1
91*67e74705SXin Li@end
92*67e74705SXin Li
93*67e74705SXin Li@interface Foo3 {
94*67e74705SXin Li  int foo;
95*67e74705SXin Li  int bar:26;
96*67e74705SXin Li}
97*67e74705SXin Li@end
98*67e74705SXin Li
99*67e74705SXin Li@implementation Foo3
100*67e74705SXin Li@end
101*67e74705SXin Li
102