diff options
author | Arthur Cohen <arthur.cohen@embecosm.com> | 2023-05-25 14:18:39 +0200 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2024-01-16 18:37:23 +0100 |
commit | 0096df08e0d792880dbbb37dfb24f928183bab9c (patch) | |
tree | 6fcde86eb5727d675986d4dd801424becea5a2e3 /gcc/rust/Make-lang.in | |
parent | 7d9b2a8607f1efda97be89917b36b4cd467904f5 (diff) | |
download | gcc-0096df08e0d792880dbbb37dfb24f928183bab9c.zip gcc-0096df08e0d792880dbbb37dfb24f928183bab9c.tar.gz gcc-0096df08e0d792880dbbb37dfb24f928183bab9c.tar.bz2 |
gccrs: expansion: Add base for deriving builtin macros (Clone, Copy...)
gcc/rust/ChangeLog:
* Make-lang.in: Add new object files to Makefile.
* expand/rust-expand-visitor.cc (is_derive): Move function.
(is_builtin): Likewise.
(get_traits_to_derive): New function.
(derive_item): Likewise.
(ExpandVisitor::visit): Visit item/statements containers.
(ExpandVisitor::visit_outer_attrs): Take a reference on the attribute
instead of a copy.
(ExpandVisitor::is_derive): Deleted function.
(ExpandVisitor::is_builtin): Likewise.
* expand/rust-expand-visitor.h (RUST_EXPAND_VISITOR_H): Add missing #ifdef
guards.
(is_derive): Declare function.
(is_builtin): Likewise.
* expand/rust-macro-builtins.cc (builtin_macro_from_string): Use new
MacroBuiltin::builtins map.
(make_macro_path_str): Likewise.
* expand/rust-macro-builtins.h (enum class): Add builtin derive macros.
* expand/rust-derive-clone.cc: New file.
* expand/rust-derive-clone.h: New file.
* expand/rust-derive.cc: New file.
* expand/rust-derive.h: New file.
* util/rust-hir-map.cc (Mappings::insert_macro_def): Fix logic for
setting builtin macro transcribers.
gcc/testsuite/ChangeLog:
* rust/compile/macro43.rs: Fix test with new derive macros.
* rust/compile/derive_macro1.rs: New test.
* rust/compile/derive_macro3.rs: New test.
* rust/execute/torture/derive_macro1.rs: New test.
* rust/execute/torture/derive_macro3.rs: New test.
Diffstat (limited to 'gcc/rust/Make-lang.in')
-rw-r--r-- | gcc/rust/Make-lang.in | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/rust/Make-lang.in b/gcc/rust/Make-lang.in index 31c11b8..1d72c86 100644 --- a/gcc/rust/Make-lang.in +++ b/gcc/rust/Make-lang.in @@ -87,6 +87,9 @@ GRS_OBJS = \ rust/rust-macro-expand.o \ rust/rust-cfg-strip.o \ rust/rust-expand-visitor.o \ + rust/rust-ast-builder.o \ + rust/rust-derive.o \ + rust/rust-derive-clone.o \ rust/rust-macro-invoc-lexer.o \ rust/rust-macro-substitute-ctx.o \ rust/rust-macro-builtins.o \ |