aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/hir/rust-hir-dump.cc
diff options
context:
space:
mode:
authorPhilip Herron <herron.philip@googlemail.com>2024-11-21 17:27:31 +0000
committerCohenArthur <arthur.cohen@embecosm.com>2024-11-22 13:53:47 +0000
commitb3f0d72ba8d365fd0cdabbe216acbbebfabb5df4 (patch)
tree9ea5847002eb154c97d5d11c883878d497ac53cd /gcc/rust/hir/rust-hir-dump.cc
parentb3a8a1a7c28fe371377b9e9f119a1d9e8d0093c7 (diff)
downloadgcc-b3f0d72ba8d365fd0cdabbe216acbbebfabb5df4.zip
gcc-b3f0d72ba8d365fd0cdabbe216acbbebfabb5df4.tar.gz
gcc-b3f0d72ba8d365fd0cdabbe216acbbebfabb5df4.tar.bz2
gccrs: fix crashes in hir dump since move to references
gcc/rust/ChangeLog: * hir/rust-hir-dump.cc (Dump::visit): add guards Signed-off-by: Philip Herron <herron.philip@googlemail.com>
Diffstat (limited to 'gcc/rust/hir/rust-hir-dump.cc')
-rw-r--r--gcc/rust/hir/rust-hir-dump.cc12
1 files changed, 8 insertions, 4 deletions
diff --git a/gcc/rust/hir/rust-hir-dump.cc b/gcc/rust/hir/rust-hir-dump.cc
index d07ad32..914dbf0 100644
--- a/gcc/rust/hir/rust-hir-dump.cc
+++ b/gcc/rust/hir/rust-hir-dump.cc
@@ -359,7 +359,8 @@ Dump::do_matcharm (MatchArm &e)
// FIXME Can't remember how to handle that. Let's see later.
// do_outer_attrs(e);
visit_collection ("match_arm_patterns", e.get_patterns ());
- visit_field ("guard_expr", e.get_guard_expr ());
+ if (e.has_match_arm_guard ())
+ visit_field ("guard_expr", e.get_guard_expr ());
end ("MatchArm");
}
@@ -1264,7 +1265,8 @@ Dump::visit (BlockExpr &e)
visit_collection ("statements", e.get_statements ());
- visit_field ("expr", e.get_final_expr ());
+ if (e.has_final_expr ())
+ visit_field ("expr", e.get_final_expr ());
end ("BlockExpr");
}
@@ -1489,7 +1491,8 @@ Dump::visit (TypeParam &e)
visit_collection ("type_param_bounds", e.get_type_param_bounds ());
- visit_field ("type", e.get_type ());
+ if (e.has_type ())
+ visit_field ("type", e.get_type ());
end ("TypeParam");
}
@@ -1655,7 +1658,8 @@ Dump::visit (Function &e)
put_field ("function_params", "empty");
}
- visit_field ("return_type", e.get_return_type ());
+ if (e.has_function_return_type ())
+ visit_field ("return_type", e.get_return_type ());
if (!e.has_where_clause ())
put_field ("where_clause", "none");