diff options
author | Arthur Cohen <arthur.cohen@embecosm.com> | 2023-06-01 16:23:27 +0200 |
---|---|---|
committer | CohenArthur <arthur.cohen@embecosm.com> | 2023-06-05 13:23:05 +0000 |
commit | cc09d0bf04fd87afb9f2b717d485a380a05e0a73 (patch) | |
tree | a01ce052ccaf265d49b1eb3ecd74441eca79d485 /gcc/rust/expand/rust-macro-builtins.h | |
parent | 171ea4e2b3e202067c50f9c206974fbe1da691c0 (diff) | |
download | gcc-cc09d0bf04fd87afb9f2b717d485a380a05e0a73.zip gcc-cc09d0bf04fd87afb9f2b717d485a380a05e0a73.tar.gz gcc-cc09d0bf04fd87afb9f2b717d485a380a05e0a73.tar.bz2 |
derive: Add dummy builtin transcriber for builtin derive macros.
Fixes #2257.
Derive builtins do not need a real transcriber, but still need one. It
will however never be called since builtin derive macros get expanded
differently, and benefit from knowing on what kind of items they are
applied (struct, enums, unions) rather than receiving a list of tokens
like regular builtin macros.
gcc/rust/ChangeLog:
* expand/rust-macro-builtins.cc (MacroBuiltin::dummy): New function.
* expand/rust-macro-builtins.h: Declare it.
gcc/testsuite/ChangeLog:
* rust/compile/derive_macro7.rs: New test.
Diffstat (limited to 'gcc/rust/expand/rust-macro-builtins.h')
-rw-r--r-- | gcc/rust/expand/rust-macro-builtins.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/rust/expand/rust-macro-builtins.h b/gcc/rust/expand/rust-macro-builtins.h index cf70e49..3759f62 100644 --- a/gcc/rust/expand/rust-macro-builtins.h +++ b/gcc/rust/expand/rust-macro-builtins.h @@ -159,6 +159,10 @@ public: AST::MacroInvocData &invoc); static AST::Fragment sorry (Location invoc_locus, AST::MacroInvocData &invoc); + + /* Builtin procedural macros do not work directly on tokens, but still need an + * empty builtin transcriber to be considered proper builtin macros */ + static AST::Fragment proc_macro_builtin (Location, AST::MacroInvocData &); }; } // namespace Rust |