[llvm] r216173 - X86AsmPrinter MCJIT MSVC bug fix.
Josh Klontz
josh.klontz at gmail.com
Thu Aug 21 05:55:28 PDT 2014
Author: jklontz
Date: Thu Aug 21 07:55:27 2014
New Revision: 216173
URL: http://llvm.org/viewvc/llvm-project?rev=216173&view=rev
Log:
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
Modified:
llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp
Modified: llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp?rev=216173&r1=216172&r2=216173&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86AsmPrinter.cpp Thu Aug 21 07:55:27 2014
@@ -561,12 +561,13 @@ MCSymbol *X86AsmPrinter::GetCPISymbol(un
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;
+ }
}
}
}
More information about the llvm-commits
mailing list