Skip to content

ICE in Compile, at rust/backend/rust-compile-pattern.h:36 type switcheroo #3947

@matthiaskrgr

Description

@matthiaskrgr

auto-reduced (treereduce-rust):

//@compile-flags: -frust-incomplete-and-experimental-compiler-do-not-use
enum _Enum {
    A(),
}

type _E = _Enum;

const fn _a() -> _Enum {
    _E::A()
}

original:

// check-pass

enum _Enum {
    A(),
}

type _E = _Enum;

const fn _a() -> _Enum {
    _E::A()
}

const _A: _Enum = _a();

const fn A() -> _Enum {
    _E::A()
}

Version information:

5c3e2ad

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

Program output

crab1: internal compiler error: Segmentation fault
0x2fec938 internal_error(char const*, ...)
	../../gcc/diagnostic-global-context.cc:517
0x196d3bf crash_signal
	../../gcc/toplev.cc:321
0xc8b769 vec<constructor_elt, va_gc, vl_embed>::space(unsigned int) const
	../../gcc/vec.h:945
0xc8b769 vec<constructor_elt, va_gc, vl_embed>::quick_push(constructor_elt const&)
	../../gcc/vec.h:1050
0xc8b769 Backend::constructor_expression(tree_node*, bool, std::vector<tree_node*, std::allocator<tree_node*> > const&, int, unsigned long)
	../../gcc/rust/rust-gcc.cc:1276
0x11686d1 Rust::Compile::CompileExpr::visit(Rust::HIR::CallExpr&)
	../../gcc/rust/backend/rust-compile-expr.cc:1288
0x1162ab6 Rust::Compile::CompileExpr::Compile(Rust::HIR::Expr&, Rust::Compile::Context*)
	../../gcc/rust/backend/rust-compile-expr.cc:48
0x118a8a1 Rust::Compile::HIRCompileBase::compile_function_body(tree_node*, Rust::HIR::BlockExpr&, Rust::TyTy::BaseType*)
	../../gcc/rust/backend/rust-compile-base.cc:625
0x118d7c0 Rust::Compile::HIRCompileBase::compile_function(bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tl::optional<Rust::HIR::SelfParam>&, std::vector<Rust::HIR::FunctionParam, std::allocator<Rust::HIR::FunctionParam> >&, Rust::HIR::FunctionQualifiers const&, Rust::HIR::Visibility&, std::vector<Rust::AST::Attribute, std::allocator<Rust::AST::Attribute> >&, unsigned long, Rust::HIR::BlockExpr*, Rust::Resolver::CanonicalPath const&, Rust::TyTy::FnType*)
	../../gcc/rust/backend/rust-compile-base.cc:791
0x1157e91 Rust::Compile::CompileItem::visit(Rust::HIR::Function&)
	../../gcc/rust/backend/rust-compile-item.cc:220
0xdbee6b Rust::Compile::CompileItem::compile(Rust::HIR::Item*, Rust::Compile::Context*, Rust::TyTy::BaseType*, unsigned long)
	../../gcc/rust/backend/rust-compile-item.h:37
0xdbee6b Rust::Compile::CompileCrate::go()
	../../gcc/rust/backend/rust-compile.cc:48
0xdbee6b Rust::Compile::CompileCrate::Compile(Rust::HIR::Crate&, Rust::Compile::Context*)
	../../gcc/rust/backend/rust-compile.cc:41
0xdb98f0 Rust::Session::compile_crate(char const*)
	../../gcc/rust/rust-session-manager.cc:732
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