xref: /aosp_15_r20/external/clang/test/CodeGenObjC/auto-property-synthesize-protocol.m (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-llvm  %s -o - | FileCheck %s
2*67e74705SXin Li// rdar://10907410
3*67e74705SXin Li
4*67e74705SXin Li@protocol P
5*67e74705SXin Li@optional
6*67e74705SXin Li@property int auto_opt_window;
7*67e74705SXin Li@property int no_auto_opt_window;
8*67e74705SXin Li@end
9*67e74705SXin Li
10*67e74705SXin Li@interface I<P>
11*67e74705SXin Li@property int auto_opt_window;
12*67e74705SXin Li@end
13*67e74705SXin Li
14*67e74705SXin Li@implementation I
15*67e74705SXin Li@end
16*67e74705SXin Li
17*67e74705SXin Li@protocol P1
18*67e74705SXin Li@property int auto_req_window;
19*67e74705SXin Li@property int no_auto_req_window; // expected-note {{property declared here}}
20*67e74705SXin Li@end
21*67e74705SXin Li
22*67e74705SXin Li@interface I1<P1>
23*67e74705SXin Li@property int auto_req_window;
24*67e74705SXin Li@end
25*67e74705SXin Li
26*67e74705SXin Li@implementation I1 // expected-warning {{auto property synthesis will not synthesize property declared in a protocol}}
27*67e74705SXin Li@end
28*67e74705SXin Li
29*67e74705SXin Li// CHECK: define internal i32 @"\01-[I auto_opt_window]"(
30*67e74705SXin Li// CHECK: define internal void @"\01-[I setAuto_opt_window:]"(
31*67e74705SXin Li// CHECK: define internal i32 @"\01-[I1 auto_req_window]"(
32*67e74705SXin Li// CHECK: define internal void @"\01-[I1 setAuto_req_window:]"(
33*67e74705SXin Li
34*67e74705SXin Li// CHECK-NOT: define internal i32 @"\01-[I1 no_auto_opt_window]"(
35*67e74705SXin Li// CHECK-NOT: define internal void @"\01-[I1 setNo_auto_opt_window:]"(
36*67e74705SXin Li// CHECK-NOT: define internal i32 @"\01-[I no_auto_req_window]"(
37*67e74705SXin Li// CHECK-NOT: define internal void @"\01-[I setNo_auto_req_window:]"(
38