1; RUN: llc -mtriple=i686-apple-macosx -o - %s | FileCheck %s 2 3; x86 doesn't normally use indirect symbols, particularly hidden ones, but it 4; can be tricked into it for exception-handling typeids. 5 6@hidden_typeid = external hidden constant ptr 7@normal_typeid = external constant ptr 8 9declare void @throws() 10 11define void @get_indirect_hidden() personality ptr @__gxx_personality_v0 { 12 invoke void @throws() to label %end unwind label %lpad 13lpad: 14 %tmp = landingpad { ptr, i32 } 15 catch ptr @hidden_typeid 16 br label %end 17 18end: 19 ret void 20} 21 22define void @get_indirect() personality ptr @__gxx_personality_v0 { 23 invoke void @throws() to label %end unwind label %lpad 24lpad: 25 %tmp = landingpad { ptr, i32 } 26 catch ptr @normal_typeid 27 br label %end 28 29end: 30 ret void 31} 32 33declare i32 @__gxx_personality_v0(...) 34 35; CHECK: .section __IMPORT,__pointers,non_lazy_symbol_pointers 36 37; CHECK-NOT: __DATA,__data 38; CHECK: .indirect_symbol _hidden_typeid 39; CHECK-NEXT: .long 0 40 41; CHECK-NOT: __DATA,__data 42; CHECK: .indirect_symbol _normal_typeid 43; CHECK-NEXT: .long 0 44