mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-26 22:34:39 +00:00
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
This commit is contained in:
parent
7994364d2f
commit
7806ab827f
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user