[gcc r14-7644] gccrs: Handle crate metavariable

Arthur Cohen cohenarthur@gcc.gnu.org
Tue Jan 16 17:50:05 GMT 2024


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

commit r14-7644-gb14efcea1f43289aec4dc5b63752111bfc34c911
Author: Owen Avery <powerboat9.gamer@gmail.com>
Date:   Sat Jun 3 19:57:33 2023 -0400

    gccrs: Handle crate metavariable
    
    gcc/rust/ChangeLog:
    
            * expand/rust-macro-substitute-ctx.cc
            (SubstituteCtx::substitute_metavar): Substitute crate metavar.
    
    Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>

Diff:
---
 gcc/rust/expand/rust-macro-substitute-ctx.cc | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/gcc/rust/expand/rust-macro-substitute-ctx.cc b/gcc/rust/expand/rust-macro-substitute-ctx.cc
index ed7cf1b2ab5..60e9b63de94 100644
--- a/gcc/rust/expand/rust-macro-substitute-ctx.cc
+++ b/gcc/rust/expand/rust-macro-substitute-ctx.cc
@@ -31,7 +31,13 @@ SubstituteCtx::substitute_metavar (
   if (it == fragments.end ())
     {
       // fail to substitute
-      return false;
+
+      // HACK: substitute ($ crate) => (crate)
+      if (metavar->get_id () != CRATE)
+	return false;
+
+      expanded.push_back (metavar->clone_token ());
+      return true;
     }
   else
     {


More information about the Gcc-cvs mailing list