llvm-project

Форк
0
/
auto-property-synthesize-protocol.m 
36 строк · 1.1 Кб
1
// RUN: %clang_cc1 -triple x86_64-apple-darwin -emit-llvm  %s -o - | FileCheck %s
2

3
@protocol P
4
@optional
5
@property int auto_opt_window;
6
@property int no_auto_opt_window;
7
@end
8

9
@interface I<P>
10
@property int auto_opt_window;
11
@end
12

13
@implementation I
14
@end
15

16
@protocol P1
17
@property int auto_req_window;
18
@property int no_auto_req_window; // expected-note {{property declared here}}
19
@end
20

21
@interface I1<P1>
22
@property int auto_req_window;
23
@end
24

25
@implementation I1 // expected-warning {{auto property synthesis will not synthesize property declared in a protocol}}
26
@end
27

28
// CHECK: define internal i32 @"\01-[I auto_opt_window]"(
29
// CHECK: define internal void @"\01-[I setAuto_opt_window:]"(
30
// CHECK: define internal i32 @"\01-[I1 auto_req_window]"(
31
// CHECK: define internal void @"\01-[I1 setAuto_req_window:]"(
32

33
// CHECK-NOT: define internal i32 @"\01-[I1 no_auto_opt_window]"(
34
// CHECK-NOT: define internal void @"\01-[I1 setNo_auto_opt_window:]"(
35
// CHECK-NOT: define internal i32 @"\01-[I no_auto_req_window]"(
36
// CHECK-NOT: define internal void @"\01-[I setNo_auto_req_window:]"(
37

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.