aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPhilip Herron <herron.philip@googlemail.com>2025-03-31 17:33:59 +0100
committerPhilip Herron <philip.herron@embecosm.com>2025-04-01 10:43:12 +0000
commit20c8539a23e0a0462e3763c3983ffb3ca9b7e709 (patch)
tree340b1cb711cb874cbb8b6bd0ce4144323c9e272a /gcc
parenteecf0cd6857d269fc9be9a858f2ba02189d756cc (diff)
downloadgcc-20c8539a23e0a0462e3763c3983ffb3ca9b7e709.zip
gcc-20c8539a23e0a0462e3763c3983ffb3ca9b7e709.tar.gz
gcc-20c8539a23e0a0462e3763c3983ffb3ca9b7e709.tar.bz2
gccrs: Fix ICE when resolving lifetimes without name
We dont need to assert here the lifetime code already supports this case. Fixes Rust-GCC#3657 gcc/rust/ChangeLog: * typecheck/rust-hir-type-check-base.cc: remove assertion gcc/testsuite/ChangeLog: * rust/compile/issue-3657.rs: New test. Signed-off-by: Philip Herron <herron.philip@googlemail.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/typecheck/rust-hir-type-check-base.cc2
-rw-r--r--gcc/testsuite/rust/compile/issue-3657.rs8
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/rust/typecheck/rust-hir-type-check-base.cc b/gcc/rust/typecheck/rust-hir-type-check-base.cc
index 378ef02..55ab86f 100644
--- a/gcc/rust/typecheck/rust-hir-type-check-base.cc
+++ b/gcc/rust/typecheck/rust-hir-type-check-base.cc
@@ -397,8 +397,6 @@ TypeCheckBase::resolve_generic_params (
auto lifetime_param
= static_cast<HIR::LifetimeParam &> (*generic_param);
auto lifetime = lifetime_param.get_lifetime ();
- rust_assert (lifetime.get_lifetime_type ()
- == AST::Lifetime::LifetimeType::NAMED);
context->get_lifetime_resolver ().insert_mapping (
context->intern_lifetime (lifetime));
}
diff --git a/gcc/testsuite/rust/compile/issue-3657.rs b/gcc/testsuite/rust/compile/issue-3657.rs
new file mode 100644
index 0000000..978f3ce
--- /dev/null
+++ b/gcc/testsuite/rust/compile/issue-3657.rs
@@ -0,0 +1,8 @@
+struct Foo<'_>(&'_ u8);
+
+impl Foo<'a> {
+ // { dg-error "unresolved lifetime" "" { target *-*-* } .-1 }
+ fn x() {}
+}
+
+fn x() {}