aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPhilip Herron <philip.herron@embecosm.com>2022-10-19 18:30:36 +0100
committerArthur Cohen <arthur.cohen@embecosm.com>2023-02-21 12:36:39 +0100
commit898240946ca2e351889015d36a60498e40b4a9fc (patch)
tree8fb2a1cddd4f66490bcfa5b6244f4b6f658476f0 /gcc
parent4d021d9e019dd2a7b5442653a20e126f37fd8f39 (diff)
downloadgcc-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.cc4
-rw-r--r--gcc/rust/checks/errors/rust-unsafe-checker.cc4
-rw-r--r--gcc/rust/checks/lints/rust-lint-marklive.h5
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;