diff options
author | jjasmine <tanghocle456@gmail.com> | 2024-06-05 18:12:49 -0700 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2025-03-17 16:35:46 +0100 |
commit | e0eb48c3a91e3920785da3f8f96ee8cd71ee55c3 (patch) | |
tree | 54f4a09acfae58faa615e909832fc948e6ad95ef /gcc | |
parent | afc905c2d7bbb771f5663e043f93f82cbf9f005b (diff) | |
download | gcc-e0eb48c3a91e3920785da3f8f96ee8cd71ee55c3.zip gcc-e0eb48c3a91e3920785da3f8f96ee8cd71ee55c3.tar.gz gcc-e0eb48c3a91e3920785da3f8f96ee8cd71ee55c3.tar.bz2 |
gccrs: Fix visitor-related warnings
gcc/rust/ChangeLog:
* ast/rust-ast-collector.cc (TokenCollector::visit):
Fix visitor-related warnings
* ast/rust-ast-collector.h: Likewise.
* ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Likewise.
* ast/rust-ast-visitor.h: Likewise.
* checks/errors/borrowck/rust-bir-builder-struct.h: Likewise.
* checks/errors/borrowck/rust-function-collector.h: Likewise.
* checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
* checks/errors/rust-const-checker.h: Likewise.
* expand/rust-derive.h: Likewise.
* expand/rust-macro-builtins-asm.cc (parse_reg_operand): Likewise.
* hir/rust-hir-dump.cc (Dump::visit): Likewise.
* hir/rust-hir-dump.h: Likewise.
* hir/tree/rust-hir-visitor.h: Likewise.
* resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Likewise.
* resolve/rust-ast-resolve-base.h: Likewise.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/ast/rust-ast-collector.cc | 5 | ||||
-rw-r--r-- | gcc/rust/ast/rust-ast-collector.h | 2 | ||||
-rw-r--r-- | gcc/rust/ast/rust-ast-visitor.cc | 6 | ||||
-rw-r--r-- | gcc/rust/ast/rust-ast-visitor.h | 5 | ||||
-rw-r--r-- | gcc/rust/checks/errors/borrowck/rust-bir-builder-struct.h | 1 | ||||
-rw-r--r-- | gcc/rust/checks/errors/borrowck/rust-function-collector.h | 1 | ||||
-rw-r--r-- | gcc/rust/checks/errors/rust-const-checker.cc | 4 | ||||
-rw-r--r-- | gcc/rust/checks/errors/rust-const-checker.h | 2 | ||||
-rw-r--r-- | gcc/rust/expand/rust-derive.h | 1 | ||||
-rw-r--r-- | gcc/rust/expand/rust-macro-builtins-asm.cc | 19 | ||||
-rw-r--r-- | gcc/rust/hir/rust-hir-dump.cc | 5 | ||||
-rw-r--r-- | gcc/rust/hir/rust-hir-dump.h | 1 | ||||
-rw-r--r-- | gcc/rust/hir/tree/rust-hir-visitor.h | 3 | ||||
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve-base.cc | 4 | ||||
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve-base.h | 1 |
15 files changed, 54 insertions, 6 deletions
diff --git a/gcc/rust/ast/rust-ast-collector.cc b/gcc/rust/ast/rust-ast-collector.cc index bc8bc9c..f1d5c8c 100644 --- a/gcc/rust/ast/rust-ast-collector.cc +++ b/gcc/rust/ast/rust-ast-collector.cc @@ -18,6 +18,7 @@ #include "rust-ast-collector.h" #include "rust-ast.h" #include "rust-diagnostics.h" +#include "rust-expr.h" #include "rust-item.h" #include "rust-keyword-values.h" #include "rust-token.h" @@ -1511,6 +1512,10 @@ TokenCollector::visit (AsyncBlockExpr &expr) visit (expr.get_block_expr ()); } +void +TokenCollector::visit (InlineAsm &expr) +{} + // rust-item.h void diff --git a/gcc/rust/ast/rust-ast-collector.h b/gcc/rust/ast/rust-ast-collector.h index 7b418bb..b2dc41b 100644 --- a/gcc/rust/ast/rust-ast-collector.h +++ b/gcc/rust/ast/rust-ast-collector.h @@ -303,7 +303,7 @@ public: void visit (MatchExpr &expr); void visit (AwaitExpr &expr); void visit (AsyncBlockExpr &expr); - + void visit (InlineAsm &expr); // rust-item.h void visit (TypeParam ¶m); void visit (LifetimeWhereClauseItem &item); diff --git a/gcc/rust/ast/rust-ast-visitor.cc b/gcc/rust/ast/rust-ast-visitor.cc index 2c1674e..c4abf2e 100644 --- a/gcc/rust/ast/rust-ast-visitor.cc +++ b/gcc/rust/ast/rust-ast-visitor.cc @@ -663,6 +663,12 @@ DefaultASTVisitor::visit (AST::AsyncBlockExpr &expr) } void +DefaultASTVisitor::visit (AST::InlineAsm &expr) +{ + rust_unreachable (); +} + +void DefaultASTVisitor::visit (AST::TypeParam ¶m) { visit_outer_attrs (param); diff --git a/gcc/rust/ast/rust-ast-visitor.h b/gcc/rust/ast/rust-ast-visitor.h index d91ef3d..2f56d89 100644 --- a/gcc/rust/ast/rust-ast-visitor.h +++ b/gcc/rust/ast/rust-ast-visitor.h @@ -23,7 +23,6 @@ // full include not required - only forward decls #include "rust-ast-full-decls.h" #include "rust-ast.h" -#include "rust-expr.h" #include "rust-item.h" #include "rust-system.h" @@ -129,7 +128,7 @@ public: virtual void visit (MatchExpr &expr) = 0; virtual void visit (AwaitExpr &expr) = 0; virtual void visit (AsyncBlockExpr &expr) = 0; - virtual void visit (InlineAsm &expr) { rust_unreachable (); } + virtual void visit (InlineAsm &expr) = 0; // rust-item.h virtual void visit (TypeParam ¶m) = 0; @@ -313,6 +312,8 @@ protected: virtual void visit (AST::MatchExpr &expr) override; virtual void visit (AST::AwaitExpr &expr) override; virtual void visit (AST::AsyncBlockExpr &expr) override; + virtual void visit (InlineAsm &expr) override; + virtual void visit (AST::TypeParam ¶m) override; virtual void visit (AST::LifetimeWhereClauseItem &item) override; virtual void visit (AST::TypeBoundWhereClauseItem &item) override; diff --git a/gcc/rust/checks/errors/borrowck/rust-bir-builder-struct.h b/gcc/rust/checks/errors/borrowck/rust-bir-builder-struct.h index 17331dd..53346bf 100644 --- a/gcc/rust/checks/errors/borrowck/rust-bir-builder-struct.h +++ b/gcc/rust/checks/errors/borrowck/rust-bir-builder-struct.h @@ -154,6 +154,7 @@ protected: void visit (HIR::MatchExpr &expr) override { rust_unreachable (); } void visit (HIR::AwaitExpr &expr) override { rust_unreachable (); } void visit (HIR::AsyncBlockExpr &expr) override { rust_unreachable (); } + void visit (HIR::InlineAsm &expr) override { rust_unreachable (); } void visit (HIR::TypeParam ¶m) override { rust_unreachable (); } void visit (HIR::ConstGenericParam ¶m) override { rust_unreachable (); } void visit (HIR::LifetimeWhereClauseItem &item) override diff --git a/gcc/rust/checks/errors/borrowck/rust-function-collector.h b/gcc/rust/checks/errors/borrowck/rust-function-collector.h index 990534f..51109d7 100644 --- a/gcc/rust/checks/errors/borrowck/rust-function-collector.h +++ b/gcc/rust/checks/errors/borrowck/rust-function-collector.h @@ -124,6 +124,7 @@ public: void visit (HIR::MatchExpr &expr) override {} void visit (HIR::AwaitExpr &expr) override {} void visit (HIR::AsyncBlockExpr &expr) override {} + void visit (HIR::InlineAsm &expr) override {} void visit (HIR::TypeParam ¶m) override {} void visit (HIR::ConstGenericParam ¶m) override {} void visit (HIR::LifetimeWhereClauseItem &item) override {} diff --git a/gcc/rust/checks/errors/rust-const-checker.cc b/gcc/rust/checks/errors/rust-const-checker.cc index 8c12012..2beee21 100644 --- a/gcc/rust/checks/errors/rust-const-checker.cc +++ b/gcc/rust/checks/errors/rust-const-checker.cc @@ -535,6 +535,10 @@ ConstChecker::visit (AsyncBlockExpr &) } void +ConstChecker::visit (InlineAsm &) +{} + +void ConstChecker::visit (TypeParam &) {} diff --git a/gcc/rust/checks/errors/rust-const-checker.h b/gcc/rust/checks/errors/rust-const-checker.h index 8b9df0e..8890761 100644 --- a/gcc/rust/checks/errors/rust-const-checker.h +++ b/gcc/rust/checks/errors/rust-const-checker.h @@ -133,6 +133,8 @@ private: virtual void visit (MatchExpr &expr) override; virtual void visit (AwaitExpr &expr) override; virtual void visit (AsyncBlockExpr &expr) override; + virtual void visit (InlineAsm &expr) override; + virtual void visit (TypeParam ¶m) override; virtual void visit (ConstGenericParam ¶m) override; virtual void visit (LifetimeWhereClauseItem &item) override; diff --git a/gcc/rust/expand/rust-derive.h b/gcc/rust/expand/rust-derive.h index c92f9c0..1924432 100644 --- a/gcc/rust/expand/rust-derive.h +++ b/gcc/rust/expand/rust-derive.h @@ -143,6 +143,7 @@ private: virtual void visit (MatchExpr &expr) override final{}; virtual void visit (AwaitExpr &expr) override final{}; virtual void visit (AsyncBlockExpr &expr) override final{}; + virtual void visit (InlineAsm &expr) override final{}; virtual void visit (TypeParam ¶m) override final{}; virtual void visit (LifetimeWhereClauseItem &item) override final{}; virtual void visit (TypeBoundWhereClauseItem &item) override final{}; diff --git a/gcc/rust/expand/rust-macro-builtins-asm.cc b/gcc/rust/expand/rust-macro-builtins-asm.cc index 55ba95a..b666fad 100644 --- a/gcc/rust/expand/rust-macro-builtins-asm.cc +++ b/gcc/rust/expand/rust-macro-builtins-asm.cc @@ -263,8 +263,23 @@ parse_reg_operand (Parser<MacroInvocLexer> &parser, TokenId last_token_id, } else if (!is_global_asm && check_identifier (parser, "out")) { - rust_unreachable (); - return tl::nullopt; + rust_debug ("Enter parse_reg_operand out"); + + auto reg = parse_reg (parser, last_token_id, inline_asm_ctx); + + auto expr = parse_format_string (parser, last_token_id, inline_asm_ctx); + reg_operand.register_type = AST::InlineAsmOperand::RegisterType::Out; + + // Since reg is of type optional<T>, we need to check if it is not + // optional first. + // TODO: We don't throw any errors since we should have throw any + // encountered parsing error in parse_reg + if (reg) + { + reg_operand.in.reg = reg.value (); + } + + return reg_operand; } else if (!is_global_asm && check_identifier (parser, "lateout")) { diff --git a/gcc/rust/hir/rust-hir-dump.cc b/gcc/rust/hir/rust-hir-dump.cc index 567c4f3..f0fd914 100644 --- a/gcc/rust/hir/rust-hir-dump.cc +++ b/gcc/rust/hir/rust-hir-dump.cc @@ -24,6 +24,7 @@ #include "rust-hir.h" #include <string> #include "rust-attribute-values.h" +#include "tree/rust-hir-expr.h" namespace Rust { namespace HIR { @@ -1471,6 +1472,10 @@ Dump::visit (AsyncBlockExpr &e) } void +Dump::visit (InlineAsm &e) +{} + +void Dump::visit (TypeParam &e) { begin ("TypeParam"); diff --git a/gcc/rust/hir/rust-hir-dump.h b/gcc/rust/hir/rust-hir-dump.h index 51273c1..bb5c360 100644 --- a/gcc/rust/hir/rust-hir-dump.h +++ b/gcc/rust/hir/rust-hir-dump.h @@ -166,6 +166,7 @@ private: virtual void visit (MatchExpr &) override; virtual void visit (AwaitExpr &) override; virtual void visit (AsyncBlockExpr &) override; + virtual void visit (InlineAsm &) override; virtual void visit (TypeParam &) override; virtual void visit (ConstGenericParam &) override; diff --git a/gcc/rust/hir/tree/rust-hir-visitor.h b/gcc/rust/hir/tree/rust-hir-visitor.h index be14149..72609f4 100644 --- a/gcc/rust/hir/tree/rust-hir-visitor.h +++ b/gcc/rust/hir/tree/rust-hir-visitor.h @@ -86,7 +86,7 @@ public: virtual void visit (MatchExpr &expr) = 0; virtual void visit (AwaitExpr &expr) = 0; virtual void visit (AsyncBlockExpr &expr) = 0; - virtual void visit (InlineAsm &expr) {} + virtual void visit (InlineAsm &expr) = 0; virtual void visit (TypeParam ¶m) = 0; virtual void visit (ConstGenericParam ¶m) = 0; virtual void visit (LifetimeWhereClauseItem &item) = 0; @@ -225,6 +225,7 @@ public: virtual void visit (MatchExpr &) override {} virtual void visit (AwaitExpr &) override {} virtual void visit (AsyncBlockExpr &) override {} + virtual void visit (InlineAsm &) override {} virtual void visit (TypeParam &) override {} virtual void visit (ConstGenericParam &) override {} diff --git a/gcc/rust/resolve/rust-ast-resolve-base.cc b/gcc/rust/resolve/rust-ast-resolve-base.cc index 66ce5bf..69f146c 100644 --- a/gcc/rust/resolve/rust-ast-resolve-base.cc +++ b/gcc/rust/resolve/rust-ast-resolve-base.cc @@ -323,6 +323,10 @@ ResolverBase::visit (AST::AsyncBlockExpr &) {} void +ResolverBase::visit (AST::InlineAsm &) +{} + +void ResolverBase::visit (AST::TypeParam &) {} diff --git a/gcc/rust/resolve/rust-ast-resolve-base.h b/gcc/rust/resolve/rust-ast-resolve-base.h index 46bcac6..0d497f8 100644 --- a/gcc/rust/resolve/rust-ast-resolve-base.h +++ b/gcc/rust/resolve/rust-ast-resolve-base.h @@ -104,6 +104,7 @@ public: void visit (AST::MatchExpr &); void visit (AST::AwaitExpr &); void visit (AST::AsyncBlockExpr &); + void visit (AST::InlineAsm &); void visit (AST::TypeParam &); |