| ; RUN: llvm-as < %s | llvm-dis | FileCheck %s |
| |
| @gv.decl = external constant [8 x i8] |
| @gv.def = constant [8 x i8] zeroinitializer |
| |
| @gv.associated.func.decl = external addrspace(1) constant [8 x i8], !associated !0 |
| @gv.associated.func.def = external addrspace(1) constant [8 x i8], !associated !1 |
| |
| @gv.associated.gv.decl = external addrspace(1) constant [8 x i8], !associated !2 |
| @gv.associated.gv.def = external addrspace(1) constant [8 x i8], !associated !3 |
| |
| @alias = alias i32, ptr @gv.def |
| |
| @gv.associated.alias.gv.def = external addrspace(1) constant [8 x i8], !associated !4 |
| |
| @gv.associated.alias.addrspacecast = external addrspace(1) constant [8 x i8], !associated !5 |
| @alias.addrspacecast = alias i32, ptr addrspace(1) addrspacecast (ptr @gv.def to ptr addrspace(1)) |
| |
| |
| @gv.def.associated.addrspacecast = external addrspace(1) constant [8 x i8], !associated !6 |
| |
| @ifunc = dso_local ifunc i32 (i32), ptr @ifunc_resolver |
| @gv.associated.ifunc = external constant [8 x i8], !associated !7 |
| |
| @gv.associated.null = external constant [8 x i8], !associated !8 |
| @gv.associated.inttoptr = external constant [8 x i8], !associated !9 |
| @gv.associated.poison = external constant [8 x i8], !associated !10 |
| @gv.associated.undef = external constant [8 x i8], !associated !11 |
| @associated.addrspacecast.null = external addrspace(1) constant [8 x i8], !associated !12 |
| |
| |
| ;. |
| ; CHECK: @[[GV_DECL:[a-zA-Z0-9_$"\\.-]+]] = external constant [8 x i8] |
| ; CHECK: @[[GV_DEF:[a-zA-Z0-9_$"\\.-]+]] = constant [8 x i8] zeroinitializer |
| ; CHECK: @[[GV_ASSOCIATED_FUNC_DECL:[a-zA-Z0-9_$"\\.-]+]] = external addrspace(1) constant [8 x i8], !associated !0 |
| ; CHECK: @[[GV_ASSOCIATED_FUNC_DEF:[a-zA-Z0-9_$"\\.-]+]] = external addrspace(1) constant [8 x i8], !associated !1 |
| ; CHECK: @[[GV_ASSOCIATED_GV_DECL:[a-zA-Z0-9_$"\\.-]+]] = external addrspace(1) constant [8 x i8], !associated !2 |
| ; CHECK: @[[GV_ASSOCIATED_GV_DEF:[a-zA-Z0-9_$"\\.-]+]] = external addrspace(1) constant [8 x i8], !associated !3 |
| ; CHECK: @[[GV_ASSOCIATED_ALIAS_GV_DEF:[a-zA-Z0-9_$"\\.-]+]] = external addrspace(1) constant [8 x i8], !associated !4 |
| ; CHECK: @[[GV_ASSOCIATED_ALIAS_ADDRSPACECAST:[a-zA-Z0-9_$"\\.-]+]] = external addrspace(1) constant [8 x i8], !associated !5 |
| ; CHECK: @[[GV_DEF_ASSOCIATED_ADDRSPACECAST:[a-zA-Z0-9_$"\\.-]+]] = external addrspace(1) constant [8 x i8], !associated !6 |
| ; CHECK: @[[GV_ASSOCIATED_IFUNC:[a-zA-Z0-9_$"\\.-]+]] = external constant [8 x i8], !associated !7 |
| ; CHECK: @[[GV_ASSOCIATED_NULL:[a-zA-Z0-9_$"\\.-]+]] = external constant [8 x i8], !associated !8 |
| ; CHECK: @[[GV_ASSOCIATED_INTTOPTR:[a-zA-Z0-9_$"\\.-]+]] = external constant [8 x i8], !associated !9 |
| ; CHECK: @[[GV_ASSOCIATED_POISON:[a-zA-Z0-9_$"\\.-]+]] = external constant [8 x i8], !associated !10 |
| ; CHECK: @[[GV_ASSOCIATED_UNDEF:[a-zA-Z0-9_$"\\.-]+]] = external constant [8 x i8], !associated !11 |
| ; CHECK: @[[ALIAS:[a-zA-Z0-9_$"\\.-]+]] = alias i32, ptr @gv.def |
| ; CHECK: @[[ALIAS_ADDRSPACECAST:[a-zA-Z0-9_$"\\.-]+]] = alias i32, addrspacecast (ptr @gv.def to ptr addrspace(1)) |
| ; CHECK: @[[IFUNC:[a-zA-Z0-9_$"\\.-]+]] = dso_local ifunc i32 (i32), ptr @ifunc_resolver |
| ;. |
| define ptr @ifunc_resolver() { |
| ; CHECK-LABEL: @ifunc_resolver( |
| ; CHECK-NEXT: ret ptr null |
| ; |
| ret ptr null |
| } |
| |
| |
| declare void @func.decl() |
| define void @func.def() { |
| ; CHECK-LABEL: @func.def( |
| ; CHECK-NEXT: ret void |
| ; |
| ret void |
| } |
| |
| !0 = !{ ptr @func.decl } |
| !1 = !{ ptr @func.def } |
| !2 = !{ ptr @gv.decl } |
| !3 = !{ ptr @gv.def } |
| !4 = !{ ptr @alias } |
| !5 = !{ ptr addrspace(1) @alias.addrspacecast } |
| !6 = !{ ptr addrspace(1) addrspacecast (ptr @gv.def to ptr addrspace(1)) } |
| !7 = !{ ptr @ifunc } |
| !8 = !{ ptr null } |
| !9 = !{ ptr inttoptr (i64 12345 to ptr) } |
| !10 = !{ ptr poison } |
| !11 = !{ ptr undef } |
| !12 = !{ptr addrspace(1) addrspacecast (ptr null to ptr addrspace(1))} |
| ;. |
| ; CHECK: [[META0:![0-9]+]] = !{ptr @func.decl} |
| ; CHECK: [[META1:![0-9]+]] = !{ptr @func.def} |
| ; CHECK: [[META2:![0-9]+]] = !{ptr @gv.decl} |
| ; CHECK: [[META3:![0-9]+]] = !{ptr @gv.def} |
| ; CHECK: [[META4:![0-9]+]] = !{ptr @alias} |
| ; CHECK: [[META5:![0-9]+]] = !{ptr addrspace(1) @alias.addrspacecast} |
| ; CHECK: [[META6:![0-9]+]] = !{ptr addrspace(1) addrspacecast (ptr @gv.def to ptr addrspace(1))} |
| ; CHECK: [[META7:![0-9]+]] = !{ptr @ifunc} |
| ; CHECK: [[META8:![0-9]+]] = !{ptr null} |
| ; CHECK: [[META9:![0-9]+]] = !{ptr inttoptr (i64 12345 to ptr)} |
| ; CHECK: [[META10:![0-9]+]] = !{ptr poison} |
| ; CHECK: [[META11:![0-9]+]] = !{ptr undef} |
| ;. |