diff options
author | Philip Herron <herron.philip@googlemail.com> | 2023-04-21 17:52:01 +0100 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2024-01-16 18:34:13 +0100 |
commit | 73ed16c0f8bc157bcb905e87cffcfd616ee7ea04 (patch) | |
tree | 537a26c4dd03fea3652d5029f2341c37732212a1 | |
parent | 6700154ff7ef970abf305eacbf3f6e0feb19133e (diff) | |
download | gcc-73ed16c0f8bc157bcb905e87cffcfd616ee7ea04.zip gcc-73ed16c0f8bc157bcb905e87cffcfd616ee7ea04.tar.gz gcc-73ed16c0f8bc157bcb905e87cffcfd616ee7ea04.tar.bz2 |
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 <herron.philip@googlemail.com>
-rw-r--r-- | gcc/rust/typecheck/rust-hir-type-check-pattern.cc | 7 |
1 files 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 f793b61..bde7076 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<TyTy::ReferenceType *> (parent); TyTy::BaseType *infered_base |