https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123419
Bug ID: 123419
Summary: d: internal compiler error: in visit, at
d/expr.cc:2224
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: d
Assignee: ibuclaw at gdcproject dot org
Reporter: ibuclaw at gcc dot gnu.org
Target Milestone: ---
```
struct S {}
void foo(T)(T _) {}
void bar()
{
foo(__traits(initSymbol, S));
}
```
The var expression fails this assertion.
gcc_assert (e->type->isConst ()
&& e->type->nextOf ()->ty == TY::Tvoid);
Backtrace:
0xc01154 ExprVisitor::visit(VarExp*)
../../gcc/d/expr.cc:2224
0xbfbf1e build_expr(Expression*, bool, bool)
../../gcc/d/expr.cc:3071
0xbe343b d_build_call(TypeFunction*, tree_node*, tree_node*,
Array<Expression*>*)
../../gcc/d/d-codegen.cc:2200
0xbfe122 ExprVisitor::visit(CallExp*)
../../gcc/d/expr.cc:1788
0xbfbf1e build_expr(Expression*, bool, bool)
../../gcc/d/expr.cc:3071
0xbfbfd7 build_expr_dtor(Expression*)
../../gcc/d/expr.cc:3094
0xc0c1b5 IRVisitor::visit(ExpStatement*)
../../gcc/d/toir.cc:1075
0xc0c131 IRVisitor::build_stmt(Statement*)
../../gcc/d/toir.cc:274
0xc0c131 IRVisitor::visit(CompoundStatement*)
../../gcc/d/toir.cc:1092
0xc0c131 IRVisitor::visit(CompoundStatement*)
../../gcc/d/toir.cc:1082
0xc0b51a IRVisitor::build_stmt(Statement*)
../../gcc/d/toir.cc:274
0xc0b51a build_function_body(FuncDeclaration*)
../../gcc/d/toir.cc:1504
0xbfaa54 DeclVisitor::visit(FuncDeclaration*)
../../gcc/d/decl.cc:1038
0xbf44b1 DeclVisitor::build_dsymbol(Dsymbol*)
../../gcc/d/decl.cc:253
0xbf44b1 build_decl_tree(Dsymbol*)
../../gcc/d/decl.cc:1079
0xc08c20 build_module_tree(Module*)
../../gcc/d/modules.cc:739
0xbf809b DeclVisitor::visit(Module*)
../../gcc/d/decl.cc:270
0xbf44b1 DeclVisitor::build_dsymbol(Dsymbol*)
../../gcc/d/decl.cc:253
0xbf44b1 build_decl_tree(Dsymbol*)
../../gcc/d/decl.cc:1079
0xbf02ac d_parse_file
../../gcc/d/d-lang.cc:1407