diff options
-rw-r--r-- | llvm/lib/Target/X86/X86Subtarget.cpp | 2 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/x86-64-pic.ll | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/X86Subtarget.cpp b/llvm/lib/Target/X86/X86Subtarget.cpp index 651a660261b..a24b425a4e8 100644 --- a/llvm/lib/Target/X86/X86Subtarget.cpp +++ b/llvm/lib/Target/X86/X86Subtarget.cpp @@ -66,7 +66,7 @@ static bool shouldAssumeDSOLocal(Reloc::Model RM, const Triple &TT, if (RM == Reloc::Static) return true; - if (GV && (GV->hasInternalLinkage() || !GV->hasDefaultVisibility())) + if (GV && (GV->hasLocalLinkage() || !GV->hasDefaultVisibility())) return true; if (TT.isOSBinFormatELF()) { diff --git a/llvm/test/CodeGen/X86/x86-64-pic.ll b/llvm/test/CodeGen/X86/x86-64-pic.ll new file mode 100644 index 00000000000..76ed8894b41 --- /dev/null +++ b/llvm/test/CodeGen/X86/x86-64-pic.ll @@ -0,0 +1,8 @@ +; RUN: llc < %s -mtriple=x86_64-pc-linux -relocation-model=pic | FileCheck %s + +@g1 = private global i8 1 +define i8* @get_g1() { +; CHECK: get_g1: +; CHECK: leaq .Lg1(%rip), %rax + ret i8* @g1 +} |