[gcc r14-8151] gccrs: Move default visitor templates to header
Arthur Cohen
cohenarthur@gcc.gnu.org
Tue Jan 16 18:18:03 GMT 2024
https://gcc.gnu.org/g:4011a8b5a16abca411b74aa0fd131c3dc0b3771a
commit r14-8151-g4011a8b5a16abca411b74aa0fd131c3dc0b3771a
Author: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Date: Tue Nov 7 13:02:20 2023 +0100
gccrs: Move default visitor templates to header
Move default ast visitor template implementation to headers in order to
match the codebase and avoid link errors.
gcc/rust/ChangeLog:
* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Move from here...
* ast/rust-ast-visitor.h: ... to here.
Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Diff:
---
gcc/rust/ast/rust-ast-visitor.cc | 14 --------------
gcc/rust/ast/rust-ast-visitor.h | 7 +++++--
2 files changed, 5 insertions(+), 16 deletions(-)
diff --git a/gcc/rust/ast/rust-ast-visitor.cc b/gcc/rust/ast/rust-ast-visitor.cc
index d8395820892..4ec5c7cf1d0 100644
--- a/gcc/rust/ast/rust-ast-visitor.cc
+++ b/gcc/rust/ast/rust-ast-visitor.cc
@@ -30,20 +30,6 @@
namespace Rust {
namespace AST {
-template <typename T>
-void
-DefaultASTVisitor::visit (T &node)
-{
- node.accept_vis (*this);
-}
-
-template <typename T>
-void
-DefaultASTVisitor::visit (std::unique_ptr<T> &node)
-{
- node->accept_vis (*this);
-}
-
void
DefaultASTVisitor::visit (AST::Crate &crate)
{
diff --git a/gcc/rust/ast/rust-ast-visitor.h b/gcc/rust/ast/rust-ast-visitor.h
index e5be44157ed..43cd750f5f7 100644
--- a/gcc/rust/ast/rust-ast-visitor.h
+++ b/gcc/rust/ast/rust-ast-visitor.h
@@ -395,9 +395,12 @@ protected:
virtual void visit (AST::FunctionParam ¶m) override;
virtual void visit (AST::VariadicParam ¶m) override;
- template <typename T> void visit (T &node);
+ template <typename T> void visit (T &node) { node.accept_vis (*this); }
- template <typename T> void visit (std::unique_ptr<T> &node);
+ template <typename T> void visit (std::unique_ptr<T> &node)
+ {
+ node->accept_vis (*this);
+ }
virtual void visit (AST::GenericArgsBinding &binding);
virtual void visit (AST::PathExprSegment &segment);
More information about the Gcc-cvs
mailing list