ICE: in visit, at rust/typecheck/rust-substitution-mapper.h:61
Open
Nobody has claimed this yet.
bug
- Dominant language
- C++
- Stars
- 2.9k
- Forks
- 231
- Avg merge
- 20h 2m
- Merged PRs (30d)
- 66
Description
auto-reduced (treereduce-rust):
//@compile-flags: -frust-incomplete-and-experimental-compiler-do-not-use
trait Foo {
type T;
fn foo() -> Self;
}
original:
// run-pass
// pretty-expanded FIXME #23616
trait Foo {
type T;
fn foo() -> Self<<Self as Foo>::T>;
}
fn main() {}
Version information:
765121736dfe3f5b319bbe9837880deda326394e
Command:
/home/matthias/vcs/github/gccrs/gccrs-build/gcc/crab1 -frust-incomplete-and-experimental-compiler-do-not-use
Program output
Analyzing compilation unit
Performing interprocedural optimizations
<*free_lang_data> {heap 1160k} <visibility> {heap 1160k} <build_ssa_passes> {heap 1160k} <opt_local_passes> {heap 1160k} <remove_symbols> {heap 1160k} <targetclone> {heap 1160k} <free-fnsummary> {heap 1160k}Streaming LTO
<whole-program> {heap 1160k} <fnsummary> {heap 1160k} <inline> {heap 1160k} <modref> {heap 1160k} <free-fnsummary> {heap 1160k} <single-use> {heap 1160k} <comdats> {heap 1160k}Assembling functions:
<simdclone> {heap 1160k}
Time variable usr sys wall GGC
TOTAL : 0.00 0.00 0.00 168k
Extra diagnostic checks enabled; compiler may run slowly.
Configure with --enable-checking=release to disable checks.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the reduced Rust case with the shown crab1 command, then inspect rust/typecheck/rust-substitution-mapper.h at line 61 to trace the ICE during type checking. Use the reduced trait definition as a regression case; the issue is done when this input no longer causes an internal compiler error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, rust
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100