================
@@ -557,6 +557,36 @@
         ! V9: prefetch  [%i1+%i2], #one_read  ! encoding: [0xc3,0x6e,0x40,0x1a]
         prefetch  [ %i1 + %i2 ], #one_read
 
+        ! V8:      error: malformed ASI tag, must be a constant integer 
expression
----------------
s-barannikov wrote:

It is because parseAbsoluteExpression fails. When it fails, we're no longer 
allowed to return NoMatch as the method consumes tokens. It should not be 
called at all if the tokens to be parsed do not look like an expression.
I can suggest two ways to overcome this:
* Restrict numerical tags to be integer literals and do not use 
parseAbsoluteExpression. I recall you saying that the numerical tag can indeed 
be an expression, so this might not be the way to go.
* Check that the next token can be a start of an expression before calling 
parseAbsoluteExpression. Those should be Identifier, Integer, Plus, Minus, 
LParen, and possibly Tilde and Exclaim. Such kind of check is performed in, 
e.g., parseCallTarget and parseSparcAsmOperand.


https://github.com/llvm/llvm-project/pull/94250
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to