xref: /aosp_15_r20/external/clang/test/ARCMT/autoreleases.m.result (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-arc -x objective-c %s.result
2*67e74705SXin Li// RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c %s > %t
3*67e74705SXin Li// RUN: diff %t %s.result
4*67e74705SXin Li
5*67e74705SXin Li#include "Common.h"
6*67e74705SXin Li
7*67e74705SXin Li@interface A : NSObject {
8*67e74705SXin Li@package
9*67e74705SXin Li    id object;
10*67e74705SXin Li}
11*67e74705SXin Li@end
12*67e74705SXin Li
13*67e74705SXin Li@interface B : NSObject {
14*67e74705SXin Li  id _prop;
15*67e74705SXin Li  xpc_object_t _xpc_prop;
16*67e74705SXin Li}
17*67e74705SXin Li- (BOOL)containsSelf:(A*)a;
18*67e74705SXin Li@property (strong) id prop;
19*67e74705SXin Li@property (strong) xpc_object_t xpc_prop;
20*67e74705SXin Li@end
21*67e74705SXin Li
22*67e74705SXin Li@implementation A
23*67e74705SXin Li@end
24*67e74705SXin Li
25*67e74705SXin Li@implementation B
26*67e74705SXin Li- (BOOL)containsSelf:(A*)a {
27*67e74705SXin Li    return a->object == self;
28*67e74705SXin Li}
29*67e74705SXin Li
30*67e74705SXin Li-(id) prop {
31*67e74705SXin Li  return _prop;
32*67e74705SXin Li}
33*67e74705SXin Li-(void) setProp:(id) newVal {
34*67e74705SXin Li  _prop = newVal;
35*67e74705SXin Li}
36*67e74705SXin Li-(void) setProp2:(CFTypeRef) newVal {
37*67e74705SXin Li  _prop = (id)CFBridgingRelease(CFRetain(newVal));
38*67e74705SXin Li}
39*67e74705SXin Li
40*67e74705SXin Li-(id) xpc_prop {
41*67e74705SXin Li  return _xpc_prop;
42*67e74705SXin Li}
43*67e74705SXin Li-(void) setXpc_prop:(xpc_object_t) newVal {
44*67e74705SXin Li  _xpc_prop = newVal;
45*67e74705SXin Li}
46*67e74705SXin Li@end
47*67e74705SXin Li
48*67e74705SXin Livoid NSLog(id, ...);
49*67e74705SXin Li
50*67e74705SXin Liint main (int argc, const char * argv[]) {
51*67e74705SXin Li    @autoreleasepool {
52*67e74705SXin Li        A *a = [A new];
53*67e74705SXin Li        B *b = [B new];
54*67e74705SXin Li        NSLog(@"%s", [b containsSelf:a] ? "YES" : "NO");
55*67e74705SXin Li    }
56*67e74705SXin Li    return 0;
57*67e74705SXin Li}
58*67e74705SXin Li
59*67e74705SXin Livoid test(A *prevVal, A *newVal) {
60*67e74705SXin Li  prevVal = newVal;
61*67e74705SXin Li}
62*67e74705SXin Li
63*67e74705SXin Liid test2(A* val) {
64*67e74705SXin Li  return val;
65*67e74705SXin Li}
66*67e74705SXin Li
67*67e74705SXin Liid test3() {
68*67e74705SXin Li  id a = [[A alloc] init];
69*67e74705SXin Li}
70