https://gcc.gnu.org/g:8122f4de72c4927333bd0556cc05d65e7b9404a0

commit r16-2919-g8122f4de72c4927333bd0556cc05d65e7b9404a0
Author: Owen Avery <powerboat9.ga...@gmail.com>
Date:   Tue Jul 1 13:47:59 2025 -0400

    gccrs: Allow format_args to accept a raw string literal
    
    gcc/rust/ChangeLog:
    
            * expand/rust-macro-builtins-format-args.cc
            (format_args_parse_arguments): Accept a RAW_STRING_LITERAL token
            as the first argument.
    
    Signed-off-by: Owen Avery <powerboat9.ga...@gmail.com>

Diff:
---
 gcc/rust/expand/rust-macro-builtins-format-args.cc | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/gcc/rust/expand/rust-macro-builtins-format-args.cc 
b/gcc/rust/expand/rust-macro-builtins-format-args.cc
index 3e1249d3d36f..b20c84953206 100644
--- a/gcc/rust/expand/rust-macro-builtins-format-args.cc
+++ b/gcc/rust/expand/rust-macro-builtins-format-args.cc
@@ -52,8 +52,15 @@ format_args_parse_arguments (AST::MacroInvocData &invoc)
 
   // TODO: Handle the case where we're not parsing a string literal (macro
   // invocation for e.g.)
-  if (parser.peek_current_token ()->get_id () == STRING_LITERAL)
-    format_expr = parser.parse_literal_expr ();
+  switch (parser.peek_current_token ()->get_id ())
+    {
+    case STRING_LITERAL:
+    case RAW_STRING_LITERAL:
+      format_expr = parser.parse_literal_expr ();
+    default:
+      // do nothing
+      ;
+    }
 
   rust_assert (format_expr);

Reply via email to