mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
Fix the arm assembler so that this malformed instruction:
ldrd r6, r7 [r2, #15] simply gives an error and does not triggers an assertion. As Jim points out, the diagnostic is really strange here, but fixing that would be more complicated. The missing comma results in the parser expecting a construct like r2[2], which is the vector index thing the error message is talking about. That's not what the user intended, though, and there's nothing else in the instruction that looks at all like a vector. Yet more fallout from not having a real parser here and trying to do context-free generic matching for addressing modes. rdar://15097243 llvm-svn: 201531
This commit is contained in:
parent
81a09cf058
commit
0a635e7acf
@ -2778,7 +2778,8 @@ int ARMAsmParser::tryParseShiftRegister(
|
||||
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.isNot(AsmToken::Identifier))
|
||||
return -1;
|
||||
|
||||
std::string lowerCase = Tok.getString().lower();
|
||||
ARM_AM::ShiftOpc ShiftTy = StringSwitch<ARM_AM::ShiftOpc>(lowerCase)
|
||||
|
5
test/MC/ARM/invalid-vector-index.s
Normal file
5
test/MC/ARM/invalid-vector-index.s
Normal file
@ -0,0 +1,5 @@
|
||||
@ RUN: not llvm-mc -triple=armv7-apple-darwin < %s 2>&1 | FileCheck %s
|
||||
|
||||
ldrd r6, r7 [r2, #15]
|
||||
|
||||
@ CHECK: error: immediate value expected for vector index
|
Loading…
Reference in New Issue
Block a user