xref: /minix3/external/bsd/llvm/dist/clang/test/CodeGenObjC/objc2-weak-import-attribute.m (revision 0a6a1f1d05b60e214de2f05a7310ddd1f0e590e7)
1f4a2713aSLionel Sambuc// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -o - %s | FileCheck -check-prefix=CHECK-X86-64 %s
2f4a2713aSLionel Sambuc
3f4a2713aSLionel Sambuc__attribute__((weak_import)) @interface WeakRootClass @end
4f4a2713aSLionel Sambuc
5f4a2713aSLionel Sambuc__attribute__((weak_import)) @interface WeakClass : WeakRootClass
6f4a2713aSLionel Sambuc@end
7f4a2713aSLionel Sambuc
8f4a2713aSLionel Sambuc@interface MySubclass : WeakClass @end
9f4a2713aSLionel Sambuc
10f4a2713aSLionel Sambuc@implementation MySubclass @end
11f4a2713aSLionel Sambuc
12f4a2713aSLionel Sambuc@implementation WeakClass(MyCategory) @end
13f4a2713aSLionel Sambuc
14f4a2713aSLionel Sambuc
15f4a2713aSLionel Sambuc__attribute__((weak_import))
16f4a2713aSLionel Sambuc@interface WeakClass1 @end
17f4a2713aSLionel Sambuc
18f4a2713aSLionel Sambuc@implementation WeakClass1(MyCategory) @end
19f4a2713aSLionel Sambuc
20f4a2713aSLionel Sambuc@implementation WeakClass1(YourCategory) @end
21f4a2713aSLionel Sambuc
22f4a2713aSLionel Sambuc __attribute__((weak_import))
23f4a2713aSLionel Sambuc@interface WeakClass3
24f4a2713aSLionel Sambuc+ message;
25f4a2713aSLionel Sambuc@end
26f4a2713aSLionel Sambuc
27f4a2713aSLionel Sambucint main() {
28f4a2713aSLionel Sambuc     [WeakClass3 message];
29f4a2713aSLionel Sambuc}
30f4a2713aSLionel Sambuc
31f4a2713aSLionel Sambuc// CHECK-X86-64: OBJC_METACLASS_$_WeakRootClass" = extern_weak global
32f4a2713aSLionel Sambuc// CHECK-X86-64: OBJC_METACLASS_$_WeakClass" = extern_weak global
33f4a2713aSLionel Sambuc// CHECK-X86-64: OBJC_CLASS_$_WeakClass" = extern_weak global
34f4a2713aSLionel Sambuc// CHECK-X86-64: OBJC_CLASS_$_WeakClass1" = extern_weak global
35f4a2713aSLionel Sambuc// CHECK-X86-64: OBJC_CLASS_$_WeakClass3" = extern_weak global
36f4a2713aSLionel Sambuc
37f4a2713aSLionel Sambuc// Root is being implemented here. No extern_weak.
38f4a2713aSLionel Sambuc__attribute__((weak_import)) @interface Root @end
39f4a2713aSLionel Sambuc
40f4a2713aSLionel Sambuc@interface Super : Root @end
41f4a2713aSLionel Sambuc
42f4a2713aSLionel Sambuc@interface Sub : Super @end
43f4a2713aSLionel Sambuc
44f4a2713aSLionel Sambuc@implementation Sub @end
45f4a2713aSLionel Sambuc
46f4a2713aSLionel Sambuc@implementation Root @end
47f4a2713aSLionel Sambuc
48*0a6a1f1dSLionel Sambuc// CHECK-X86-64-NOT: OBJC_METACLASS_$_Root" = extern_weak global
49