asoffer / Icarus

An experimental general-purpose programming language
Apache License 2.0
9 stars 2 forks source link

Segfault when constructing arrays of custom types #107

Closed perimosocordiae closed 2 years ago

perimosocordiae commented 2 years ago

Reproducer: https://github.com/asoffer/Icarus/blob/d34e86a0f5d6291188e33eaa5308c53109501bfb/examples/regressions.ic#L12-L14

Observed:

*** SIGSEGV received at time=1642566476 on cpu 2 ***
PC: @          0x1168e70  (unknown)  ir::RegisterAllocator::Reserve()
    @          0x15785d0         64  absl::WriteFailureInfo()
    @          0x15782b4        224  absl::AbslFailureSignalHandler()
    @     0x7f6fa4c03520  (unknown)  (unknown)
    @          0x1168079         32  ir::internal::BlockGroupBase::Reserve()
    @          0x12949eb        624  compiler::(anonymous namespace)::OnEachArrayElement<>()
    @          0x12944e5        336  compiler::Compiler::EmitDefaultInit()
    @          0x1036832         80  compiler::Compiler::Visit()
    @          0x104cf8b         64  type::Visitor<>::ErasedVisit()::{lambda()#1}::operator()<>()
    @          0x104cf32         48  std::__invoke_impl<>()
    @          0x104cef2         48  std::__invoke<>()
    @          0x104ceaa         48  std::__apply_impl<>()
    @          0x104ce62         48  std::apply<>()
    @          0x103818d         80  type::Visitor<>::ErasedVisit()
    @          0x1486c3e         48  type::Array::Accept()
    @          0x124d988         48  type::Visitor<>::Visit()
    @          0x12477fe         80  compiler::Compiler::EmitDefaultInit()
    @          0x1245976        576  compiler::(anonymous namespace)::EmitNonConstantDeclaration()
    @          0x12449f7        160  compiler::Compiler::EmitToBuffer()
    @          0x105ea45         48  compiler::IrEmitter<>::operator()<>()
    @          0x105ea11         64  base::Visitable<>::vtable<>()::{lambda()#14}::operator()()
    @          0x105dec5         48  base::Visitable<>::vtable<>()::{lambda()#14}::__invoke()
    @          0x105dbc0         80  base::Visitable<>::visit<>()
    @          0x105a5b9         48  compiler::Compiler::EmitToBuffer()
    @          0x12ce065        384  compiler::EmitIrForStatements()
    @          0x102938d        688  compiler::CompileExecutable()::$_6::operator()()
    @          0x102913b         64  compiler::WorkGraph::ExecuteCompilationSequence<>()::{lambda()#1}::operator()()
    @          0x1024c69        144  compiler::WorkGraph::ExecuteCompilationSequence<>()
    @          0x1024b6f        496  compiler::CompileExecutable()
    @           0xfe4ebc       2416  compiler::(anonymous namespace)::Interpret()
    @           0xfe4915        704  main
    @     0x7f6fa4beafd0  (unknown)  (unknown)
Segmentation fault (core dumped)