From 73ed16c0f8bc157bcb905e87cffcfd616ee7ea04 Mon Sep 17 00:00:00 2001 From: Philip Herron Date: Fri, 21 Apr 2023 17:52:01 +0100 Subject: [PATCH] gccrs: Fix ICE when we dont get a reference type gcc/rust/ChangeLog: * typecheck/rust-hir-type-check-pattern.cc (TypeCheckPattern::visit): return so we dont hit undefined behaviour Signed-off-by: Philip Herron --- gcc/rust/typecheck/rust-hir-type-check-pattern.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gcc/rust/typecheck/rust-hir-type-check-pattern.cc b/gcc/rust/typecheck/rust-hir-type-check-pattern.cc index f793b61cd99c..bde707682387 100644 --- a/gcc/rust/typecheck/rust-hir-type-check-pattern.cc +++ b/gcc/rust/typecheck/rust-hir-type-check-pattern.cc @@ -362,8 +362,11 @@ void TypeCheckPattern::visit (HIR::ReferencePattern &pattern) { if (parent->get_kind () != TyTy::TypeKind::REF) - rust_error_at (pattern.get_locus (), "expected %s, found reference", - parent->as_string ().c_str ()); + { + rust_error_at (pattern.get_locus (), "expected %s, found reference", + parent->as_string ().c_str ()); + return; + } TyTy::ReferenceType *ref_ty_ty = static_cast (parent); TyTy::BaseType *infered_base -- 2.47.2