diff options
author | Philip Herron <philip.herron@embecosm.com> | 2022-10-19 18:30:36 +0100 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2023-02-21 12:36:39 +0100 |
commit | 898240946ca2e351889015d36a60498e40b4a9fc (patch) | |
tree | 8fb2a1cddd4f66490bcfa5b6244f4b6f658476f0 /gcc | |
parent | 4d021d9e019dd2a7b5442653a20e126f37fd8f39 (diff) | |
download | gcc-898240946ca2e351889015d36a60498e40b4a9fc.zip gcc-898240946ca2e351889015d36a60498e40b4a9fc.tar.gz gcc-898240946ca2e351889015d36a60498e40b4a9fc.tar.bz2 |
gccrs: Add closures to lints and error checking
gcc/rust/ChangeLog:
* checks/errors/rust-const-checker.cc (ConstChecker::visit): Visit closures properly.
* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
* checks/lints/rust-lint-marklive.h: Likewise.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/checks/errors/rust-const-checker.cc | 4 | ||||
-rw-r--r-- | gcc/rust/checks/errors/rust-unsafe-checker.cc | 4 | ||||
-rw-r--r-- | gcc/rust/checks/lints/rust-lint-marklive.h | 5 |
3 files changed, 11 insertions, 2 deletions
diff --git a/gcc/rust/checks/errors/rust-const-checker.cc b/gcc/rust/checks/errors/rust-const-checker.cc index 01dc262..9161fa1 100644 --- a/gcc/rust/checks/errors/rust-const-checker.cc +++ b/gcc/rust/checks/errors/rust-const-checker.cc @@ -383,7 +383,9 @@ ConstChecker::visit (FieldAccessExpr &expr) void ConstChecker::visit (ClosureExpr &expr) -{} +{ + expr.get_expr ()->accept_vis (*this); +} void ConstChecker::visit (BlockExpr &expr) diff --git a/gcc/rust/checks/errors/rust-unsafe-checker.cc b/gcc/rust/checks/errors/rust-unsafe-checker.cc index 0286879..3d53474 100644 --- a/gcc/rust/checks/errors/rust-unsafe-checker.cc +++ b/gcc/rust/checks/errors/rust-unsafe-checker.cc @@ -454,7 +454,9 @@ UnsafeChecker::visit (FieldAccessExpr &expr) void UnsafeChecker::visit (ClosureExpr &expr) -{} +{ + expr.get_expr ()->accept_vis (*this); +} void UnsafeChecker::visit (BlockExpr &expr) diff --git a/gcc/rust/checks/lints/rust-lint-marklive.h b/gcc/rust/checks/lints/rust-lint-marklive.h index 4caf18c..dcc625d 100644 --- a/gcc/rust/checks/lints/rust-lint-marklive.h +++ b/gcc/rust/checks/lints/rust-lint-marklive.h @@ -285,6 +285,11 @@ public: item->accept_vis (*this); } + void visit (HIR::ClosureExpr &expr) override + { + expr.get_expr ()->accept_vis (*this); + } + private: std::vector<HirId> worklist; std::set<HirId> liveSymbols; |