[llvm] r208083 - AArch64/ARM64: make NEON vector list parsing a bit more robust

Tim Northover tnorthover at apple.com
Tue May 6 05:50:51 PDT 2014


Author: tnorthover
Date: Tue May  6 07:50:51 2014
New Revision: 208083

URL: http://llvm.org/viewvc/llvm-project?rev=208083&view=rev
Log:
AArch64/ARM64: make NEON vector list parsing a bit more robust

It doesn't change the results, but it seems silly not to diagnose obvious
problems early on.

Modified:
    llvm/trunk/lib/Target/ARM64/AsmParser/ARM64AsmParser.cpp
    llvm/trunk/test/MC/ARM64/vector-lists.s

Modified: llvm/trunk/lib/Target/ARM64/AsmParser/ARM64AsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM64/AsmParser/ARM64AsmParser.cpp?rev=208083&r1=208082&r2=208083&view=diff
==============================================================================
--- llvm/trunk/lib/Target/ARM64/AsmParser/ARM64AsmParser.cpp (original)
+++ llvm/trunk/lib/Target/ARM64/AsmParser/ARM64AsmParser.cpp Tue May  6 07:50:51 2014
@@ -3131,10 +3131,13 @@ bool ARM64AsmParser::parseVectorList(Ope
     }
   }
 
-  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())

Modified: llvm/trunk/test/MC/ARM64/vector-lists.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ARM64/vector-lists.s?rev=208083&r1=208082&r2=208083&view=diff
==============================================================================
--- llvm/trunk/test/MC/ARM64/vector-lists.s (original)
+++ llvm/trunk/test/MC/ARM64/vector-lists.s Tue May  6 07:50:51 2014
@@ -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





More information about the llvm-commits mailing list