https://gcc.gnu.org/g:fe6dd9ac6ae802a83cea030a2ed1f3e2aca4e64d

commit r15-8166-gfe6dd9ac6ae802a83cea030a2ed1f3e2aca4e64d
Author: jjasmine <tanghocle...@gmail.com>
Date:   Mon May 20 23:02:59 2024 -0700

    gccrs: Working on parse_options for a bit more
    
    gcc/rust/ChangeLog:
    
            * expand/rust-macro-builtins-asm.cc (parse_options): title.

Diff:
---
 gcc/rust/expand/rust-macro-builtins-asm.cc | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/gcc/rust/expand/rust-macro-builtins-asm.cc 
b/gcc/rust/expand/rust-macro-builtins-asm.cc
index 9d904d6223e7..d47d95c594fb 100644
--- a/gcc/rust/expand/rust-macro-builtins-asm.cc
+++ b/gcc/rust/expand/rust-macro-builtins-asm.cc
@@ -98,7 +98,19 @@ parse_options (Parser<MacroInvocLexer> &parser, TokenId 
last_token_id,
 {
   // Parse everything commitedly
   if (!p.skip_token (LEFT_PAREN))
-    {}
+    {
+      // We have shifted `options` to search for the left parenthesis next, we
+      // should error out if this is not possible.
+      // TODO: report some error.
+      return -1;
+    }
+
+  auto token = parser.peek_current_token ();
+  while (token->get_id () != last_token_id && token->get_id () != RIGHT_PAREN)
+    {
+      parser.skip_token ();
+      token = parser.peek_current_token ();
+    }
 }
 bool
 check_identifier (Parser<MacroInvocLexer> &p, std::string ident)

Reply via email to