diff options
author | Arthur Cohen <arthur.cohen@embecosm.com> | 2023-05-25 14:18:39 +0200 |
---|---|---|
committer | CohenArthur <arthur.cohen@embecosm.com> | 2023-06-01 08:45:11 +0000 |
commit | 1eef15537f20e7077ace626f55170c70c60191b5 (patch) | |
tree | 49de960bb4c23b5a3f6ffac32268e32fecf22ec5 /gcc/rust/backend/rust-compile-expr.h | |
parent | a0e39c36e20828b30b2f68a25292ecd7963fafce (diff) | |
download | gcc-1eef15537f20e7077ace626f55170c70c60191b5.zip gcc-1eef15537f20e7077ace626f55170c70c60191b5.tar.gz gcc-1eef15537f20e7077ace626f55170c70c60191b5.tar.bz2 |
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/backend/rust-compile-expr.h')
0 files changed, 0 insertions, 0 deletions