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)