diff options
author | Devang Patel <dpatel@apple.com> | 2010-03-12 19:18:30 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2010-03-12 19:18:30 +0000 |
commit | d19e302f7764b4f4920a122671f42ccd78fc98e0 (patch) | |
tree | 430d9789d4b58ce1ea13f5f75f4446859c66dd20 /llvm/lib | |
parent | 8abe1ce8833dd4dc35073884676a685931b2b642 (diff) | |
download | bcm5719-llvm-d19e302f7764b4f4920a122671f42ccd78fc98e0.tar.gz bcm5719-llvm-d19e302f7764b4f4920a122671f42ccd78fc98e0.zip |
Fix llc crash on invalid input.
llvm-svn: 98369
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/X86/AsmPrinter/X86MCInstLower.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/AsmPrinter/X86MCInstLower.cpp b/llvm/lib/Target/X86/AsmPrinter/X86MCInstLower.cpp index f175907e5d1..8eaeeacd39b 100644 --- a/llvm/lib/Target/X86/AsmPrinter/X86MCInstLower.cpp +++ b/llvm/lib/Target/X86/AsmPrinter/X86MCInstLower.cpp @@ -358,6 +358,13 @@ void X86AsmPrinter::EmitInstruction(const MachineInstr *MI) { } else printOperand(MI, 0); } else { + if (MI->getOperand(0).getType()==MachineOperand::MO_Register && + MI->getOperand(0).getReg()==0) { + // Suppress offset in this case, it is not meaningful. + O << "undef"; + OutStreamer.AddBlankLine(); + return; + } // Frame address. Currently handles register +- offset only. assert(MI->getOperand(0).getType()==MachineOperand::MO_Register); assert(MI->getOperand(3).getType()==MachineOperand::MO_Immediate); |