https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104835
--- Comment #3 from Iain Buclaw <ibuclaw at gdcproject dot org> --- Ends with: #86 0x0000000120582768 in semantic3(Dsymbol*, Scope*) (sc=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, dsym=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at ../../gcc/d/dmd/semantic3.d:1525 #87 Semantic3Visitor::visit(AggregateDeclaration*) (this=0xffffffbab0, ad=0xfff76c0800) at ../../gcc/d/dmd/semantic3.d:1526 #88 0x000000012057e608 in semantic3(Dsymbol*, Scope*) (sc=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, dsym=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at ../../gcc/d/dmd/semantic3.d:193 #89 Semantic3Visitor::visit(Module*) (this=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, mod=0xfff76b2400) at ../../gcc/d/dmd/semantic3.d:195 #90 Semantic3Visitor::visit(Module*) (this=<optimized out>, mod=0xfff76b2400) at ../../gcc/d/dmd/semantic3.d:179 #91 0x000000012057eb70 in semantic3(Dsymbol*, Scope*) (dsym=<optimized out>, sc=<optimized out>) at ../../gcc/d/dmd/semantic3.d:82 #92 0x0000000120634800 in d_parse_file () at ../../gcc/d/d-lang.cc:1244 #93 0x0000000120c16944 in compile_file () at ../../gcc/toplev.cc:452 #94 0x000000012038688c in do_compile (no_backend=false) at ../../gcc/toplev.cc:2168 #95 toplev::main (this=<optimized out>, argc=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>, argv=<error reading variable: dwarf2_find_location_expression: Corrupted DWARF expression.>) at ../../gcc/toplev.cc:2320 #96 0x0000000120388208 in main (argc=<optimized out>, argv=0xffffffbf98) at ../../gcc/main.cc:39 96 doesn't seem deep enough for it to be a stack overflow, but that's the only explanation of the cause. The interpret code does have a heavy emphasis on stack with the UnionExp passed around.