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

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

    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 8b9b47d51aa4..310131c5b311 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