diff options
author | Richard Barton <richard.barton@arm.com> | 2012-06-14 10:48:04 +0000 |
---|---|---|
committer | Richard Barton <richard.barton@arm.com> | 2012-06-14 10:48:04 +0000 |
commit | a1c7367a5bed459acc88e3ea2a482b4b5dac942a (patch) | |
tree | f2ba548b8fbaac6fcde2f28896ee48d62ab1a8cd | |
parent | efc967e04459753a588ebf5820e526d790fe1cfa (diff) | |
download | llvm-a1c7367a5bed459acc88e3ea2a482b4b5dac942a.tar.gz llvm-a1c7367a5bed459acc88e3ea2a482b4b5dac942a.tar.bz2 llvm-a1c7367a5bed459acc88e3ea2a482b4b5dac942a.tar.xz |
Replace assertion failure for badly formatted CPS instrution with error message.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158445 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/ARM/AsmParser/ARMAsmParser.cpp | 3 | ||||
-rw-r--r-- | test/MC/ARM/diagnostics.s | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/lib/Target/ARM/AsmParser/ARMAsmParser.cpp index 2fae489371..6e0062ac44 100644 --- a/lib/Target/ARM/AsmParser/ARMAsmParser.cpp +++ b/lib/Target/ARM/AsmParser/ARMAsmParser.cpp @@ -3284,7 +3284,8 @@ ARMAsmParser::OperandMatchResultTy ARMAsmParser:: parseProcIFlagsOperand(SmallVectorImpl<MCParsedAsmOperand*> &Operands) { SMLoc S = Parser.getTok().getLoc(); const AsmToken &Tok = Parser.getTok(); - assert(Tok.is(AsmToken::Identifier) && "Token is not an Identifier"); + if (!Tok.is(AsmToken::Identifier)) + return MatchOperand_NoMatch; StringRef IFlagsStr = Tok.getString(); // An iflags string of "none" is interpreted to mean that none of the AIF diff --git a/test/MC/ARM/diagnostics.s b/test/MC/ARM/diagnostics.s index 7da79c31dc..117c8514f3 100644 --- a/test/MC/ARM/diagnostics.s +++ b/test/MC/ARM/diagnostics.s @@ -315,3 +315,9 @@ @ CHECK-ERRORS: error: coprocessor option must be an immediate in range [0, 255] @ CHECK-ERRORS: ldc2 p2, c8, [r1], { -1 } @ CHECK-ERRORS: ^ + + @ Bad CPS instruction format. + cps f,#1 +@ CHECK-ERRORS: error: invalid operand for instruction +@ CHECK-ERRORS: cps f,#1 +@ CHECK-ERRORS: ^ |