xref: /minix3/external/bsd/llvm/dist/clang/test/CodeGenObjC/attr-exception.m (revision f4a2713ac843a11c696ec80c0a5e3e5d80b4d338)
1// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -fexceptions -fobjc-exceptions -o - %s | FileCheck %s
2// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -fexceptions -fobjc-exceptions -fvisibility hidden -o - %s | FileCheck -check-prefix=CHECK-HIDDEN %s
3
4__attribute__((objc_root_class))
5@interface Root {
6  Class isa;
7}
8@end
9
10__attribute__((objc_exception))
11@interface A : Root
12@end
13
14@implementation A
15@end
16// CHECK: @"OBJC_EHTYPE_$_A" = global {{%.*}} { i8** getelementptr (i8** @objc_ehtype_vtable, i32 2)
17// CHECK-HIDDEN: @"OBJC_EHTYPE_$_A" = hidden global {{%.*}} { i8** getelementptr (i8** @objc_ehtype_vtable, i32 2)
18
19__attribute__((objc_exception))
20__attribute__((visibility("default")))
21@interface B : Root
22@end
23
24@implementation B
25@end
26// CHECK: @"OBJC_EHTYPE_$_B" = global {{%.*}} { i8** getelementptr (i8** @objc_ehtype_vtable, i32 2)
27// CHECK-HIDDEN: @"OBJC_EHTYPE_$_B" = global {{%.*}} { i8** getelementptr (i8** @objc_ehtype_vtable, i32 2)
28