blob: 0ae4f13c50208ed242f2f4945cfa5807893334c7 [file] [log] [blame]
Sebastian Redle3f38ea2008-12-21 12:17:24 +00001// RUN: clang -triple=i686-apple-darwin9 -fnext-runtime -emit-llvm -o %t %s &&
Fariborz Jahanian43822ea2008-12-19 23:34:38 +00002// RUN: grep -e "\^{Innermost=CC}" %t | count 1 &&
Fariborz Jahanianadcaf542008-12-20 19:17:01 +00003// RUN: grep -e "{Derived=#ib32b8b3b8sb16b8b8b2b8ccb6}" %t | count 1 &&
Fariborz Jahanian4306d3c2008-12-20 23:29:59 +00004// RUN: grep -e "{B1=#@c}" %t | count 1 &&
Fariborz Jahanian5b8c7d92008-12-22 23:22:27 +00005// RUN: grep -e "v12@0:4\[3\[4{Test=i}]]8" %t | count 1 &&
6// RUN: grep -e "r^{S=i}" %t | count 1
Fariborz Jahaniane4bb68a2008-12-19 17:45:06 +00007
8@class Int1;
9
10struct Innermost {
11 unsigned char a, b;
12};
13
14@interface Int1 {
15 signed char a, b;
16 struct Innermost *innermost;
17}
18@end
19
20@implementation Int1
21@end
Fariborz Jahanian43822ea2008-12-19 23:34:38 +000022
23@interface Base
24{
25 struct objc_class *isa;
26 int full;
27 int full2: 32;
28 int _refs: 8;
29 int field2: 3;
30 unsigned f3: 8;
31 short cc;
32 unsigned g: 16;
33 int r2: 8;
34 int r3: 8;
35 int r4: 2;
36 int r5: 8;
37 char c;
38}
39@end
40
41@interface Derived: Base
42{
43 char d;
44 int _field3: 6;
45}
46@end
47
48@implementation Base
49@end
50
51@implementation Derived
52@end
53
Fariborz Jahanianadcaf542008-12-20 19:17:01 +000054@interface B1
55{
56 struct objc_class *isa;
57 Int1 *sBase;
58 char c;
59}
60@end
61
62@implementation B1
63@end
64
Fariborz Jahanian4306d3c2008-12-20 23:29:59 +000065@interface Test
66{
67 int ivar;
68}
69-(void) test3: (Test [3] [4])b ;
70@end
71
72@implementation Test
73-(void) test3: (Test [3] [4])b {}
74@end
75
Fariborz Jahanian5b8c7d92008-12-22 23:22:27 +000076struct S { int iS; };
Fariborz Jahanian4306d3c2008-12-20 23:29:59 +000077
Fariborz Jahanian43822ea2008-12-19 23:34:38 +000078int main()
79{
80 const char *en = @encode(Derived);
Fariborz Jahanianadcaf542008-12-20 19:17:01 +000081 const char *eb = @encode(B1);
Fariborz Jahanian5b8c7d92008-12-22 23:22:27 +000082 const char *es = @encode(const struct S *);
83 const char *ec = @encode(const struct S);
Fariborz Jahanian43822ea2008-12-19 23:34:38 +000084}
85