Mercurial > hg > CbC > CbC_llvm
comparison clang/test/CodeGenObjC/arc-ivar-layout.m @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
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 | |
2 // rdar://8991729 | |
3 | |
4 @interface NSObject { | |
5 id isa; | |
6 } | |
7 @end | |
8 | |
9 @interface AllPointers : NSObject { | |
10 id foo; | |
11 id __strong bar; | |
12 NSObject *bletch; | |
13 } | |
14 @end | |
15 | |
16 @implementation AllPointers | |
17 @end | |
18 // CHECK-LP64: strong ivar layout for class 'AllPointers': 0x03, 0x00 | |
19 | |
20 @class NSString, NSNumber; | |
21 @interface A : NSObject { | |
22 NSString *foo; | |
23 NSNumber *bar; | |
24 unsigned int bletch; | |
25 __weak id delegate; | |
26 } | |
27 @end | |
28 | |
29 @interface B : A { | |
30 unsigned int x; | |
31 NSString *y; | |
32 NSString *z; | |
33 } | |
34 @end | |
35 | |
36 @implementation A @end | |
37 | |
38 // CHECK-LP64: strong ivar layout for class 'A': 0x02, 0x00 | |
39 // CHECK-LP64: weak ivar layout for class 'A': 0x31, 0x00 | |
40 | |
41 @implementation B @end | |
42 | |
43 // CHECK-LP64: strong ivar layout for class 'B': 0x12, 0x00 | |
44 | |
45 @interface UnsafePerson { | |
46 @public | |
47 __unsafe_unretained id name; | |
48 __unsafe_unretained id age; | |
49 id value; | |
50 } | |
51 @end | |
52 | |
53 @implementation UnsafePerson @end | |
54 | |
55 // CHECK-LP64: strong ivar layout for class 'UnsafePerson': 0x21, 0x00 | |
56 | |
57 // rdar://16136439 | |
58 @interface rdar16136439 | |
59 @property (nonatomic, readonly, weak) id first; | |
60 @end | |
61 | |
62 @implementation rdar16136439 @end | |
63 | |
64 // CHECK-LP64: weak ivar layout for class 'rdar16136439': 0x01, 0x00 | |
65 | |
66 @interface Misalign : NSObject { | |
67 char a; | |
68 } | |
69 @end | |
70 | |
71 @interface Misaligned : Misalign { | |
72 char b; | |
73 id x; | |
74 } | |
75 @end | |
76 | |
77 @implementation Misaligned @end | |
78 | |
79 // CHECK-LP64: strong ivar layout for class 'Misaligned': 0x01, 0x00 |