annotate clang/test/ARCMT/autoreleases.m.result @ 165:597b3f1c2c93

fix call createTailCallEliminationPass
author anatofuz
date Tue, 24 Mar 2020 15:30:52 +0900
parents 1d019706d866
children c4bab56944e8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-arc -x objective-c %s.result
anatofuz
parents:
diff changeset
2 // RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c %s > %t
anatofuz
parents:
diff changeset
3 // RUN: diff %t %s.result
anatofuz
parents:
diff changeset
4
anatofuz
parents:
diff changeset
5 #include "Common.h"
anatofuz
parents:
diff changeset
6
anatofuz
parents:
diff changeset
7 @interface A : NSObject {
anatofuz
parents:
diff changeset
8 @package
anatofuz
parents:
diff changeset
9 id object;
anatofuz
parents:
diff changeset
10 }
anatofuz
parents:
diff changeset
11 @end
anatofuz
parents:
diff changeset
12
anatofuz
parents:
diff changeset
13 @interface B : NSObject {
anatofuz
parents:
diff changeset
14 id _prop;
anatofuz
parents:
diff changeset
15 xpc_object_t _xpc_prop;
anatofuz
parents:
diff changeset
16 }
anatofuz
parents:
diff changeset
17 - (BOOL)containsSelf:(A*)a;
anatofuz
parents:
diff changeset
18 @property (strong) id prop;
anatofuz
parents:
diff changeset
19 @property (strong) xpc_object_t xpc_prop;
anatofuz
parents:
diff changeset
20 @end
anatofuz
parents:
diff changeset
21
anatofuz
parents:
diff changeset
22 @implementation A
anatofuz
parents:
diff changeset
23 @end
anatofuz
parents:
diff changeset
24
anatofuz
parents:
diff changeset
25 @implementation B
anatofuz
parents:
diff changeset
26 - (BOOL)containsSelf:(A*)a {
anatofuz
parents:
diff changeset
27 return a->object == self;
anatofuz
parents:
diff changeset
28 }
anatofuz
parents:
diff changeset
29
anatofuz
parents:
diff changeset
30 -(id) prop {
anatofuz
parents:
diff changeset
31 return _prop;
anatofuz
parents:
diff changeset
32 }
anatofuz
parents:
diff changeset
33 -(void) setProp:(id) newVal {
anatofuz
parents:
diff changeset
34 _prop = newVal;
anatofuz
parents:
diff changeset
35 }
anatofuz
parents:
diff changeset
36 -(void) setProp2:(CFTypeRef) newVal {
anatofuz
parents:
diff changeset
37 _prop = (id)CFBridgingRelease(CFRetain(newVal));
anatofuz
parents:
diff changeset
38 }
anatofuz
parents:
diff changeset
39
anatofuz
parents:
diff changeset
40 -(id) xpc_prop {
anatofuz
parents:
diff changeset
41 return _xpc_prop;
anatofuz
parents:
diff changeset
42 }
anatofuz
parents:
diff changeset
43 -(void) setXpc_prop:(xpc_object_t) newVal {
anatofuz
parents:
diff changeset
44 _xpc_prop = newVal;
anatofuz
parents:
diff changeset
45 }
anatofuz
parents:
diff changeset
46 @end
anatofuz
parents:
diff changeset
47
anatofuz
parents:
diff changeset
48 void NSLog(id, ...);
anatofuz
parents:
diff changeset
49
anatofuz
parents:
diff changeset
50 int main (int argc, const char * argv[]) {
anatofuz
parents:
diff changeset
51 @autoreleasepool {
anatofuz
parents:
diff changeset
52 A *a = [A new];
anatofuz
parents:
diff changeset
53 B *b = [B new];
anatofuz
parents:
diff changeset
54 NSLog(@"%s", [b containsSelf:a] ? "YES" : "NO");
anatofuz
parents:
diff changeset
55 }
anatofuz
parents:
diff changeset
56 return 0;
anatofuz
parents:
diff changeset
57 }
anatofuz
parents:
diff changeset
58
anatofuz
parents:
diff changeset
59 void test(A *prevVal, A *newVal) {
anatofuz
parents:
diff changeset
60 prevVal = newVal;
anatofuz
parents:
diff changeset
61 }
anatofuz
parents:
diff changeset
62
anatofuz
parents:
diff changeset
63 id test2(A* val) {
anatofuz
parents:
diff changeset
64 return val;
anatofuz
parents:
diff changeset
65 }
anatofuz
parents:
diff changeset
66
anatofuz
parents:
diff changeset
67 id test3() {
anatofuz
parents:
diff changeset
68 id a = [[A alloc] init];
anatofuz
parents:
diff changeset
69 }