aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust
diff options
context:
space:
mode:
authorThomas Young <wenzhang5800@gmail.com>2021-07-03 21:42:12 +0800
committerThomas Young <wenzhang5800@gmail.com>2021-07-03 23:58:47 +0800
commite1aedf6ec7d30d957c96e8ac1e2eb1c7d1384242 (patch)
tree7724e51fcaee8a851c83a1337cb1c30b633bccbd /gcc/rust
parent2b1d687d6a8eb959664e5299af229089341d14be (diff)
downloadgcc-e1aedf6ec7d30d957c96e8ac1e2eb1c7d1384242.zip
gcc-e1aedf6ec7d30d957c96e8ac1e2eb1c7d1384242.tar.gz
gcc-e1aedf6ec7d30d957c96e8ac1e2eb1c7d1384242.tar.bz2
mark live symbol in if expr family except if let expr
Diffstat (limited to 'gcc/rust')
-rw-r--r--gcc/rust/lint/rust-lint-marklive.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/gcc/rust/lint/rust-lint-marklive.h b/gcc/rust/lint/rust-lint-marklive.h
index 72274d0..5bc23e3 100644
--- a/gcc/rust/lint/rust-lint-marklive.h
+++ b/gcc/rust/lint/rust-lint-marklive.h
@@ -182,6 +182,26 @@ public:
expr.visit_rhs (*this);
}
+ void visit (HIR::IfExpr &expr) override
+ {
+ expr.get_if_condition ()->accept_vis (*this);
+ expr.get_if_block ()->accept_vis (*this);
+ }
+
+ void visit (HIR::IfExprConseqElse &expr) override
+ {
+ expr.get_if_condition ()->accept_vis (*this);
+ expr.get_if_block ()->accept_vis (*this);
+ expr.get_else_block ()->accept_vis (*this);
+ }
+
+ void visit (HIR::IfExprConseqIf &expr) override
+ {
+ expr.get_if_condition ()->accept_vis (*this);
+ expr.get_if_block ()->accept_vis (*this);
+ expr.get_conseq_if_expr ()->accept_vis (*this);
+ }
+
void visit (HIR::TraitItemFunc &item) override
{
item.get_block_expr ()->accept_vis (*this);