From: Saleem Abdulrasool Date: Wed, 21 May 2014 17:53:18 +0000 (+0000) Subject: MC: loosen an overzealous assertion X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=5dd4b9f43b4457ea481b1b649777badb79c575d5;p=oota-llvm.git MC: loosen an overzealous assertion Permit active macro expansions when terminating the assembler if there were errors during the expansion. This would only trigger on invalid input when built with assertions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@209309 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/MC/MCParser/AsmParser.cpp b/lib/MC/MCParser/AsmParser.cpp index 633d1012481..ec2094d6715 100644 --- a/lib/MC/MCParser/AsmParser.cpp +++ b/lib/MC/MCParser/AsmParser.cpp @@ -528,7 +528,8 @@ AsmParser::AsmParser(SourceMgr &_SM, MCContext &_Ctx, MCStreamer &_Out, } AsmParser::~AsmParser() { - assert(ActiveMacros.empty() && "Unexpected active macro instantiation!"); + assert((HadError || ActiveMacros.empty()) && + "Unexpected active macro instantiation!"); // Destroy any macros. for (StringMap::iterator it = MacroMap.begin(), diff --git a/test/MC/AsmParser/invalid-input-assertion.s b/test/MC/AsmParser/invalid-input-assertion.s new file mode 100644 index 00000000000..68846fe6a81 --- /dev/null +++ b/test/MC/AsmParser/invalid-input-assertion.s @@ -0,0 +1,10 @@ +// RUN: not llvm-mc -triple i686-linux -o /dev/null %s +// REQUIRES: asserts + + .macro macro parameter=0 + .if \parameter + .else + .endm + + macro 1 +