aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Herron <herron.philip@googlemail.com>2024-11-25 20:16:42 +0000
committerPhilip Herron <philip.herron@embecosm.com>2024-11-27 22:40:30 +0000
commita4abbbcffe4a30f069c3d74236d2253b89bd8aeb (patch)
tree501651cce26e4edeb3d5cdd5f929d39b5a9bfe26
parentf49ec2867b0a69bdda74098a55d9515778a33374 (diff)
downloadgcc-a4abbbcffe4a30f069c3d74236d2253b89bd8aeb.zip
gcc-a4abbbcffe4a30f069c3d74236d2253b89bd8aeb.tar.gz
gcc-a4abbbcffe4a30f069c3d74236d2253b89bd8aeb.tar.bz2
gccrs: fix crash in hir dump with missing guards
gcc/rust/ChangeLog: * hir/rust-hir-dump.cc (Dump::visit): add missing null checks Signed-off-by: Philip Herron <herron.philip@googlemail.com>
-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 914dbf0..03c0902 100644
--- a/gcc/rust/hir/rust-hir-dump.cc
+++ b/gcc/rust/hir/rust-hir-dump.cc
@@ -1892,7 +1892,8 @@ Dump::visit (TraitItemFunc &e)
do_traitfunctiondecl (e.get_decl ());
- visit_field ("block_expr", e.get_block_expr ());
+ if (e.has_definition ())
+ visit_field ("block_expr", e.get_block_expr ());
end ("TraitItemFunc");
}
@@ -2007,7 +2008,8 @@ Dump::visit (ExternalFunctionItem &e)
put_field ("has_variadics", std::to_string (e.is_variadic ()));
- visit_field ("return_type", e.get_return_type ());
+ if (e.has_return_type ())
+ visit_field ("return_type", e.get_return_type ());
end ("ExternalFunctionItem");
}
@@ -2254,8 +2256,10 @@ Dump::visit (LetStmt &e)
put_field ("variable_pattern", e.get_pattern ().as_string ());
- visit_field ("type", e.get_type ());
- visit_field ("init_expr", e.get_init_expr ());
+ if (e.has_type ())
+ visit_field ("type", e.get_type ());
+ if (e.has_init_expr ())
+ visit_field ("init_expr", e.get_init_expr ());
end ("LetStmt");
}