diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Target/ARM64/AsmParser/ARM64AsmParser.cpp | 7 | ||||
| -rw-r--r-- | llvm/test/MC/ARM64/vector-lists.s | 2 |
2 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/Target/ARM64/AsmParser/ARM64AsmParser.cpp b/llvm/lib/Target/ARM64/AsmParser/ARM64AsmParser.cpp index 9ba1b73986b..c5fb364a61a 100644 --- a/llvm/lib/Target/ARM64/AsmParser/ARM64AsmParser.cpp +++ b/llvm/lib/Target/ARM64/AsmParser/ARM64AsmParser.cpp @@ -3131,10 +3131,13 @@ bool ARM64AsmParser::parseVectorList(OperandVector &Operands) { } } - if (Parser.getTok().is(AsmToken::EndOfStatement)) - Error(getLoc(), "'}' expected"); + if (Parser.getTok().isNot(AsmToken::RCurly)) + return Error(getLoc(), "'}' expected"); Parser.Lex(); // Eat the '}' token. + if (Count > 4) + return Error(S, "invalid number of vectors"); + unsigned NumElements = 0; char ElementKind = 0; if (!Kind.empty()) diff --git a/llvm/test/MC/ARM64/vector-lists.s b/llvm/test/MC/ARM64/vector-lists.s index 0d026022375..a9b2d198e86 100644 --- a/llvm/test/MC/ARM64/vector-lists.s +++ b/llvm/test/MC/ARM64/vector-lists.s @@ -14,7 +14,7 @@ ST4 {v0.8B-},[x0] // CHECK-ERRORS: error: invalid number of vectors -// CHECK-ERRORS: error: unexpected token in argument list +// CHECK-ERRORS: error: '}' expected // CHECK-ERRORS: error: mismatched register size suffix // CHECK-ERRORS: error: mismatched register size suffix // CHECK-ERRORS: error: vector register expected |

