Change this llvm_unreachable to report_fatal_error, since it can

be triggered by valid, if dubious, IR.

llvm-svn: 110240
This commit is contained in:
Dan Gohman 2010-08-04 18:51:09 +00:00
parent afa3c0a875
commit 2392287306
1 changed files with 11 additions and 4 deletions

View File

@ -1268,10 +1268,17 @@ static const MCExpr *LowerConstant(const Constant *CV, AsmPrinter &AP) {
ConstantFoldConstantExpression(CE, AP.TM.getTargetData()))
if (C != CE)
return LowerConstant(C, AP);
#ifndef NDEBUG
CE->dump();
#endif
llvm_unreachable("FIXME: Don't support this constant expr");
// Otherwise report the problem to the user.
{
std::string S;
raw_string_ostream OS(S);
OS << "Unsupported expression in static initializer: ";
WriteAsOperand(OS, CE, /*PrintType=*/false,
!AP.MF ? 0 : AP.MF->getFunction()->getParent());
report_fatal_error(OS.str());
}
return MCConstantExpr::Create(0, Ctx);
case Instruction::GetElementPtr: {
const TargetData &TD = *AP.TM.getTargetData();
// Generate a symbolic expression for the byte address