xref: /aosp_15_r20/external/clang/test/CodeGenObjCXX/message-reference.mm (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// RUN: %clang_cc1 -x objective-c++ -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - %s | FileCheck %s
2*67e74705SXin Li// rdar://8604515
3*67e74705SXin Li
4*67e74705SXin Li@interface I {}
5*67e74705SXin Li-(unsigned int&)referenceCount;
6*67e74705SXin Li@end
7*67e74705SXin Li
8*67e74705SXin Li@interface MyClass
9*67e74705SXin Li+(int)writeBlip:(I*)srcBlip;
10*67e74705SXin Li@end
11*67e74705SXin Li
12*67e74705SXin Li@implementation MyClass
13*67e74705SXin Li+(int)writeBlip:(I*)srcBlip{
14*67e74705SXin Li  return ([srcBlip referenceCount] == 0);
15*67e74705SXin Li}
16*67e74705SXin Li@end
17*67e74705SXin Li
18*67e74705SXin Li// CHECK: [[T:%.*]] = call dereferenceable({{[0-9]+}}) i32* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend
19*67e74705SXin Li// CHECK: [[U:%.*]] = load i32, i32* [[T]]
20*67e74705SXin Li// CHECK: [[V:%.*]] = icmp eq i32 [[U]], 0
21