diff options
author | David Blaikie <dblaikie@gmail.com> | 2013-07-01 21:45:25 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2013-07-01 21:45:25 +0000 |
commit | a35ae962918258207f9092ccbdf4fffa1f2c70f1 (patch) | |
tree | 714e3c5d5f29eb0dd4fcfe1c4561cef6242ec35b /lib | |
parent | 1307d8300f6fe97059998480c42b44faefbc9b99 (diff) | |
download | external_llvm-a35ae962918258207f9092ccbdf4fffa1f2c70f1.zip external_llvm-a35ae962918258207f9092ccbdf4fffa1f2c70f1.tar.gz external_llvm-a35ae962918258207f9092ccbdf4fffa1f2c70f1.tar.bz2 |
PR16493: DebugInfo with TLS on PPC crashing due to invalid relocation
Restrict the current TLS support to X86 ELF for now. Test that we don't
produce it on PPC & we can flesh that test case out with the right thing
once someone implements it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185389 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/CodeGen/TargetLoweringObjectFileImpl.cpp | 4 | ||||
-rw-r--r-- | lib/Target/X86/X86TargetObjectFile.cpp | 6 | ||||
-rw-r--r-- | lib/Target/X86/X86TargetObjectFile.h | 3 |
3 files changed, 9 insertions, 4 deletions
diff --git a/lib/CodeGen/TargetLoweringObjectFileImpl.cpp b/lib/CodeGen/TargetLoweringObjectFileImpl.cpp index 69d5591..7e7359a 100644 --- a/lib/CodeGen/TargetLoweringObjectFileImpl.cpp +++ b/lib/CodeGen/TargetLoweringObjectFileImpl.cpp @@ -401,10 +401,6 @@ TargetLoweringObjectFileELF::InitializeELF(bool UseInitArray_) { SectionKind::getDataRel()); } -const MCSymbolRefExpr *TargetLoweringObjectFileELF::getDebugThreadLocalSymbol(const MCSymbol *Sym) const { - return MCSymbolRefExpr::Create(Sym, MCSymbolRefExpr::VK_DTPOFF, getContext()); -} - //===----------------------------------------------------------------------===// // MachO //===----------------------------------------------------------------------===// diff --git a/lib/Target/X86/X86TargetObjectFile.cpp b/lib/Target/X86/X86TargetObjectFile.cpp index 871dacd..a00e8d4 100644 --- a/lib/Target/X86/X86TargetObjectFile.cpp +++ b/lib/Target/X86/X86TargetObjectFile.cpp @@ -47,3 +47,9 @@ X86LinuxTargetObjectFile::Initialize(MCContext &Ctx, const TargetMachine &TM) { TargetLoweringObjectFileELF::Initialize(Ctx, TM); InitializeELF(TM.Options.UseInitArray); } + +const MCSymbolRefExpr * +X86LinuxTargetObjectFile::getDebugThreadLocalSymbol( + const MCSymbol *Sym) const { + return MCSymbolRefExpr::Create(Sym, MCSymbolRefExpr::VK_DTPOFF, getContext()); +} diff --git a/lib/Target/X86/X86TargetObjectFile.h b/lib/Target/X86/X86TargetObjectFile.h index 9d26d38..7baedd2 100644 --- a/lib/Target/X86/X86TargetObjectFile.h +++ b/lib/Target/X86/X86TargetObjectFile.h @@ -36,6 +36,9 @@ namespace llvm { /// and x86-64. class X86LinuxTargetObjectFile : public TargetLoweringObjectFileELF { virtual void Initialize(MCContext &Ctx, const TargetMachine &TM); + + /// \brief Describe a TLS variable address within debug info. + virtual const MCSymbolRefExpr *getDebugThreadLocalSymbol(const MCSymbol *Sym) const; }; } // end namespace llvm |