annotate clang/test/CodeGenObjC/arc-ivar-layout.m @ 180:680fa57a2f20

fix compile errors.
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 30 May 2020 17:44:06 +0900
parents 1d019706d866
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clang_cc1 -fobjc-arc -fobjc-runtime-has-weak -triple x86_64-apple-darwin -print-ivar-layout -emit-llvm %s -o %t-64.s | FileCheck -check-prefix CHECK-LP64 %s
anatofuz
parents:
diff changeset
2 // rdar://8991729
anatofuz
parents:
diff changeset
3
anatofuz
parents:
diff changeset
4 @interface NSObject {
anatofuz
parents:
diff changeset
5 id isa;
anatofuz
parents:
diff changeset
6 }
anatofuz
parents:
diff changeset
7 @end
anatofuz
parents:
diff changeset
8
anatofuz
parents:
diff changeset
9 @interface AllPointers : NSObject {
anatofuz
parents:
diff changeset
10 id foo;
anatofuz
parents:
diff changeset
11 id __strong bar;
anatofuz
parents:
diff changeset
12 NSObject *bletch;
anatofuz
parents:
diff changeset
13 }
anatofuz
parents:
diff changeset
14 @end
anatofuz
parents:
diff changeset
15
anatofuz
parents:
diff changeset
16 @implementation AllPointers
anatofuz
parents:
diff changeset
17 @end
anatofuz
parents:
diff changeset
18 // CHECK-LP64: strong ivar layout for class 'AllPointers': 0x03, 0x00
anatofuz
parents:
diff changeset
19
anatofuz
parents:
diff changeset
20 @class NSString, NSNumber;
anatofuz
parents:
diff changeset
21 @interface A : NSObject {
anatofuz
parents:
diff changeset
22 NSString *foo;
anatofuz
parents:
diff changeset
23 NSNumber *bar;
anatofuz
parents:
diff changeset
24 unsigned int bletch;
anatofuz
parents:
diff changeset
25 __weak id delegate;
anatofuz
parents:
diff changeset
26 }
anatofuz
parents:
diff changeset
27 @end
anatofuz
parents:
diff changeset
28
anatofuz
parents:
diff changeset
29 @interface B : A {
anatofuz
parents:
diff changeset
30 unsigned int x;
anatofuz
parents:
diff changeset
31 NSString *y;
anatofuz
parents:
diff changeset
32 NSString *z;
anatofuz
parents:
diff changeset
33 }
anatofuz
parents:
diff changeset
34 @end
anatofuz
parents:
diff changeset
35
anatofuz
parents:
diff changeset
36 @implementation A @end
anatofuz
parents:
diff changeset
37
anatofuz
parents:
diff changeset
38 // CHECK-LP64: strong ivar layout for class 'A': 0x02, 0x00
anatofuz
parents:
diff changeset
39 // CHECK-LP64: weak ivar layout for class 'A': 0x31, 0x00
anatofuz
parents:
diff changeset
40
anatofuz
parents:
diff changeset
41 @implementation B @end
anatofuz
parents:
diff changeset
42
anatofuz
parents:
diff changeset
43 // CHECK-LP64: strong ivar layout for class 'B': 0x12, 0x00
anatofuz
parents:
diff changeset
44
anatofuz
parents:
diff changeset
45 @interface UnsafePerson {
anatofuz
parents:
diff changeset
46 @public
anatofuz
parents:
diff changeset
47 __unsafe_unretained id name;
anatofuz
parents:
diff changeset
48 __unsafe_unretained id age;
anatofuz
parents:
diff changeset
49 id value;
anatofuz
parents:
diff changeset
50 }
anatofuz
parents:
diff changeset
51 @end
anatofuz
parents:
diff changeset
52
anatofuz
parents:
diff changeset
53 @implementation UnsafePerson @end
anatofuz
parents:
diff changeset
54
anatofuz
parents:
diff changeset
55 // CHECK-LP64: strong ivar layout for class 'UnsafePerson': 0x21, 0x00
anatofuz
parents:
diff changeset
56
anatofuz
parents:
diff changeset
57 // rdar://16136439
anatofuz
parents:
diff changeset
58 @interface rdar16136439
anatofuz
parents:
diff changeset
59 @property (nonatomic, readonly, weak) id first;
anatofuz
parents:
diff changeset
60 @end
anatofuz
parents:
diff changeset
61
anatofuz
parents:
diff changeset
62 @implementation rdar16136439 @end
anatofuz
parents:
diff changeset
63
anatofuz
parents:
diff changeset
64 // CHECK-LP64: weak ivar layout for class 'rdar16136439': 0x01, 0x00
anatofuz
parents:
diff changeset
65
anatofuz
parents:
diff changeset
66 @interface Misalign : NSObject {
anatofuz
parents:
diff changeset
67 char a;
anatofuz
parents:
diff changeset
68 }
anatofuz
parents:
diff changeset
69 @end
anatofuz
parents:
diff changeset
70
anatofuz
parents:
diff changeset
71 @interface Misaligned : Misalign {
anatofuz
parents:
diff changeset
72 char b;
anatofuz
parents:
diff changeset
73 id x;
anatofuz
parents:
diff changeset
74 }
anatofuz
parents:
diff changeset
75 @end
anatofuz
parents:
diff changeset
76
anatofuz
parents:
diff changeset
77 @implementation Misaligned @end
anatofuz
parents:
diff changeset
78
anatofuz
parents:
diff changeset
79 // CHECK-LP64: strong ivar layout for class 'Misaligned': 0x01, 0x00