llvm-project

Форк
0
49 строк · 1.1 Кб
1
// RUN: %clang_cc1 -triple=i686-apple-darwin9 -emit-llvm -o - %s | FileCheck %s
2

3
// CHECK: private unnamed_addr constant [7 x i8] c"@\22<X>\22\00",
4
// CHECK: private unnamed_addr constant [10 x i8] c"@\22<X><Y>\22\00",
5
// CHECK: private unnamed_addr constant [13 x i8] c"@\22<X><Y><Z>\22\00",
6
// CHECK: private unnamed_addr constant [16 x i8] c"@\22Foo<X><Y><Z>\22\00",
7
// CHECK: private unnamed_addr constant [13 x i8] c"{Intf=@@@@#}\00",
8

9
// CHECK: @[[PROP_NAME_ATTR:.*]] = private unnamed_addr constant [5 x i8] c"T@,D\00",
10
// CHECK: @"_OBJC_$_PROP_LIST_C0" = internal global { i32, i32, [1 x %{{.*}}] } { i32 8, i32 1, [1 x %{{.*}}] [%{{.*}} { {{.*}}, ptr @[[PROP_NAME_ATTR]] }] },
11

12
@protocol X, Y, Z;
13
@class Foo;
14

15
@protocol Proto
16
@end
17

18
@interface Intf <Proto>
19
{
20
id <X> IVAR_x;
21
id <X, Y> IVAR_xy;
22
id <X, Y, Z> IVAR_xyz;
23
Foo <X, Y, Z> *IVAR_Fooxyz;
24
Class <X> IVAR_Classx;
25
}
26
@end
27

28
@implementation Intf 
29
@end
30

31
int main(void)
32
{
33
	const char * en = @encode(Intf);
34
}
35

36
@protocol P0
37
@property id prop0;
38
@end
39

40
@protocol P1 <P0>
41
@property id prop0;
42
@end
43

44
@interface C0 <P1>
45
@end
46

47
@implementation C0
48
@dynamic prop0;
49
@end
50

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

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

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

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