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