summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorJosh Klontz <josh.klontz@gmail.com>2014-08-21 12:55:27 +0000
committerJosh Klontz <josh.klontz@gmail.com>2014-08-21 12:55:27 +0000
commitfbe17d6a326affd6fb8c3990ece22bfd82afd1f4 (patch)
treed1e266c73a721ca8a2c3a9c21bc4e26b23100cef /llvm/lib
parent51b1d460cb77a726546099f857de0492433bc321 (diff)
downloadbcm5719-llvm-fbe17d6a326affd6fb8c3990ece22bfd82afd1f4.tar.gz
bcm5719-llvm-fbe17d6a326affd6fb8c3990ece22bfd82afd1f4.zip
X86AsmPrinter MCJIT MSVC bug fix.
Summary: This bug was introduced in r213006 which makes an assumption that MCSection is COFF for Windows MSVC. This assumption is broken for MCJIT users where ELF is used instead [1]. The fix is to change the MCSection cast to a dyn_cast. [1] http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-December/068407.html. Reviewers: majnemer Reviewed By: majnemer Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D4872 llvm-svn: 216173
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86AsmPrinter.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/llvm/lib/Target/X86/X86AsmPrinter.cpp b/llvm/lib/Target/X86/X86AsmPrinter.cpp
index 44c123fc1db..4e5b7b8804d 100644
--- a/llvm/lib/Target/X86/X86AsmPrinter.cpp
+++ b/llvm/lib/Target/X86/X86AsmPrinter.cpp
@@ -561,12 +561,13 @@ MCSymbol *X86AsmPrinter::GetCPISymbol(unsigned CPID) const {
SectionKind Kind =
CPE.getSectionKind(TM.getSubtargetImpl()->getDataLayout());
const Constant *C = CPE.Val.ConstVal;
- const MCSectionCOFF *S = cast<MCSectionCOFF>(
- getObjFileLowering().getSectionForConstant(Kind, C));
- if (MCSymbol *Sym = S->getCOMDATSymbol()) {
- if (Sym->isUndefined())
- OutStreamer.EmitSymbolAttribute(Sym, MCSA_Global);
- return Sym;
+ if (const MCSectionCOFF *S = dyn_cast<MCSectionCOFF>(
+ getObjFileLowering().getSectionForConstant(Kind, C))) {
+ if (MCSymbol *Sym = S->getCOMDATSymbol()) {
+ if (Sym->isUndefined())
+ OutStreamer.EmitSymbolAttribute(Sym, MCSA_Global);
+ return Sym;
+ }
}
}
}
OpenPOWER on IntegriCloud