Skip to content

ICE: in visit, at rust/typecheck/rust-hir-type-check-enumitem.cc:204 #3670

Open
@matthiaskrgr

Description

@matthiaskrgr

auto-reduced (treereduce-rust):

//@compile-flags: -frust-incomplete-and-experimental-compiler-do-not-use
enum E {
    A = {
        enum Foo {
            Bar(isize),
            Baz,
        }
        0
    },
}

original:

// check-pass

enum E {
    A = {
        enum Foo {
    Bar(isize),
    Baz,
}
        0
    }
}

fn main() {}

Version information:

7651217

Possibly related line of code:

else
{
canonical_path
= mappings.lookup_canonical_path (item.get_mappings ().get_nodeid ());
}
rust_assert (canonical_path.has_value ());
RustIdent ident{*canonical_path, item.get_locus ()};
variant = new TyTy::VariantDef (item.get_mappings ().get_hirid (),
item.get_mappings ().get_defid (),
item.get_identifier ().as_string (), ident,
TyTy::VariantDef::VariantType::TUPLE,

Command:
/home/matthias/vcs/github/gccrs/gccrs-build/gcc/crab1 -frust-incomplete-and-experimental-compiler-do-not-use

Program output

/tmp/icemaker_global_tempdir.NKudfJBTYGQf/rustc_testrunner_tmpdir_reporting.5SHLYwQhKAeY/mvce.rs:4:17: error: unknown reference for resolved name: ‘isize’
    4 |             Bar(isize),
      |                 ^~~~~
crab1: internal compiler error: in visit, at rust/typecheck/rust-hir-type-check-enumitem.cc:204
0x891647 Rust::Resolver::TypeCheckEnumItem::visit(Rust::HIR::EnumItemTuple&)
	../../gcc/rust/typecheck/rust-hir-type-check-enumitem.cc:204
0xfc0158 Rust::Resolver::TypeCheckEnumItem::Resolve(Rust::HIR::EnumItem&, long)
	../../gcc/rust/typecheck/rust-hir-type-check-enumitem.cc:43
0xf83021 Rust::Resolver::TypeCheckItem::visit(Rust::HIR::Enum&)
	../../gcc/rust/typecheck/rust-hir-type-check-item.cc:352
0xf7dbb7 Rust::Resolver::TypeCheckItem::Resolve(Rust::HIR::Item&)
	../../gcc/rust/typecheck/rust-hir-type-check-item.cc:59
0xfb995b ???
	../../gcc/rust/typecheck/rust-hir-type-check-stmt.h:39
0xfb9f15 Rust::Resolver::TypeCheckStmt::Resolve(Rust::HIR::Stmt&)
	../../gcc/rust/typecheck/rust-hir-type-check-stmt.cc:34
0xfaba54 Rust::Resolver::TypeCheckExpr::visit(Rust::HIR::BlockExpr&)
	../../gcc/rust/typecheck/rust-hir-type-check-expr.cc:594
0xfaa2b8 Rust::Resolver::TypeCheckExpr::Resolve(Rust::HIR::Expr&)
	../../gcc/rust/typecheck/rust-hir-type-check-expr.cc:47
0xfbc509 Rust::Resolver::TypeCheckEnumItem::visit(Rust::HIR::EnumItemDiscriminant&)
	../../gcc/rust/typecheck/rust-hir-type-check-enumitem.cc:114
0xfc018f Rust::Resolver::TypeCheckEnumItem::Resolve(Rust::HIR::EnumItem&, long)
	../../gcc/rust/typecheck/rust-hir-type-check-enumitem.cc:51
0xf83021 Rust::Resolver::TypeCheckItem::visit(Rust::HIR::Enum&)
	../../gcc/rust/typecheck/rust-hir-type-check-item.cc:352
0xf7dbb7 Rust::Resolver::TypeCheckItem::Resolve(Rust::HIR::Item&)
	../../gcc/rust/typecheck/rust-hir-type-check-item.cc:59
0xf1518b Rust::Resolver::TypeResolution::Resolve(Rust::HIR::Crate&)
	../../gcc/rust/typecheck/rust-hir-type-check.cc:75
0xce8f73 Rust::Session::compile_crate(char const*)
	../../gcc/rust/rust-session-manager.cc:685
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions