aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThomas Young <wenzhang5800@gmail.com>2021-06-25 13:26:56 +0800
committerThomas Young <wenzhang5800@gmail.com>2021-06-25 13:27:25 +0800
commitb111e6305ad3dee5b599918bee892ff2bbe2c11f (patch)
tree60ebc714d84b5bc4b341bfe2c37e80b52d87dd11 /gcc
parent4d786b72b52efedede1f9f3724d0821ee475ee71 (diff)
downloadgcc-b111e6305ad3dee5b599918bee892ff2bbe2c11f.zip
gcc-b111e6305ad3dee5b599918bee892ff2bbe2c11f.tar.gz
gcc-b111e6305ad3dee5b599918bee892ff2bbe2c11f.tar.bz2
mark live symbol in NegationExpr
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/lint/rust-lint-marklive.h5
-rw-r--r--gcc/testsuite/rust/compile/torture/negation_function.rs7
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/rust/lint/rust-lint-marklive.h b/gcc/rust/lint/rust-lint-marklive.h
index 8651dd2..74cf0d3 100644
--- a/gcc/rust/lint/rust-lint-marklive.h
+++ b/gcc/rust/lint/rust-lint-marklive.h
@@ -49,6 +49,11 @@ public:
expr.get_expr ().get ()->accept_vis (*this);
}
+ void visit (HIR::NegationExpr &expr) override
+ {
+ expr.get_expr ().get ()->accept_vis (*this);
+ }
+
void visit (HIR::BlockExpr &expr) override
{
expr.iterate_stmts ([&] (HIR::Stmt *s) mutable -> bool {
diff --git a/gcc/testsuite/rust/compile/torture/negation_function.rs b/gcc/testsuite/rust/compile/torture/negation_function.rs
new file mode 100644
index 0000000..b592f9c
--- /dev/null
+++ b/gcc/testsuite/rust/compile/torture/negation_function.rs
@@ -0,0 +1,7 @@
+fn ret1() -> i32 {
+ return 1;
+}
+
+fn main() {
+ let _a = -ret1();
+} \ No newline at end of file