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.
This commit is contained in:
Philip Herron 2022-10-19 18:30:36 +01:00 committed by Arthur Cohen
parent 4d021d9e01
commit 898240946c
3 changed files with 11 additions and 2 deletions

View file

@ -383,7 +383,9 @@ ConstChecker::visit (FieldAccessExpr &expr)
void
ConstChecker::visit (ClosureExpr &expr)
{}
{
expr.get_expr ()->accept_vis (*this);
}
void
ConstChecker::visit (BlockExpr &expr)

View file

@ -454,7 +454,9 @@ UnsafeChecker::visit (FieldAccessExpr &expr)
void
UnsafeChecker::visit (ClosureExpr &expr)
{}
{
expr.get_expr ()->accept_vis (*this);
}
void
UnsafeChecker::visit (BlockExpr &expr)

View file

@ -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;