diff options
author | Saleem Abdulrasool <compnerd@compnerd.org> | 2014-05-21 17:53:18 +0000 |
---|---|---|
committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2014-05-21 17:53:18 +0000 |
commit | 5dd4b9f43b4457ea481b1b649777badb79c575d5 (patch) | |
tree | fc6233951b8cd3da4ef60ca778b11faf8e6fe58c | |
parent | 03b003b1cb2f0ab2b6bd05b879c2624522b18672 (diff) | |
download | llvm-5dd4b9f43b4457ea481b1b649777badb79c575d5.tar.gz llvm-5dd4b9f43b4457ea481b1b649777badb79c575d5.tar.bz2 llvm-5dd4b9f43b4457ea481b1b649777badb79c575d5.tar.xz |
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
-rw-r--r-- | lib/MC/MCParser/AsmParser.cpp | 3 | ||||
-rw-r--r-- | test/MC/AsmParser/invalid-input-assertion.s | 10 |
2 files changed, 12 insertions, 1 deletions
diff --git a/lib/MC/MCParser/AsmParser.cpp b/lib/MC/MCParser/AsmParser.cpp index 633d101248..ec2094d671 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<MCAsmMacro *>::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 0000000000..68846fe6a8 --- /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 + |