digitalmars.D.bugs - [Issue 20580] New: -preview=dip1021 compiler crash
- d-bugmail puremagic.com (214/214) Feb 13 2020 https://issues.dlang.org/show_bug.cgi?id=20580
https://issues.dlang.org/show_bug.cgi?id=20580 Issue ID: 20580 Summary: -preview=dip1021 compiler crash Product: D Version: D2 Hardware: All OS: All Status: NEW Severity: major Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: john.loughran.colvin gmail.com % cat garbage.d safe: template NodePtr(alias PtrTempl, T) { struct NodeImpl { T val; } alias NodePtr = PtrTempl!NodeImpl; } struct SLL(NodePtrT) { NodePtrT head; void insert(typeof(NodePtrT.val) t) { NodePtrT(t, head); } } alias DataStructure = SLL!(NodePtr!(UserCollected, int)); SLL!(NodePtr!(GarbageCollected, NodePtr!(UserCollected, int))) deadList; struct GarbageCollected(T) { T* obj; this(Args...)(Args ) { } auto opDispatch(string mem)() property { return __traits(getMember, obj, mem); } } struct UserCollected(T) { int payload; void decRef() { if (payload) deadList.insert(this); } ~this() { decRef; } auto opDispatch(string mem)() property { return payload; } } % dmd -preview=dip1021 garbage.d --- ERROR: This is a compiler bug. Please report it via https://issues.dlang.org/enter_bug.cgi with, preferably, a reduced, reproducible example and the information below. DustMite (https://github.com/CyberShadow/DustMite/wiki) can help with the reduction. --- DMD v2.090.1-170-gb76cfbc7b predefs DigitalMars Posix linux ELFv1 CRuntime_Glibc CppRuntime_Gcc LittleEndian D_Version2 all D_SIMD D_InlineAsm_X86_64 X86_64 D_LP64 D_PIC assert D_ModuleInfo D_Exceptions D_TypeInfo D_HardFloat binary /home/john/Git/dmd/generated/linux/release/64/dmd version v2.090.1-170-gb76cfbc7b config /home/john/Git/dmd/generated/linux/release/64/dmd.conf DFLAGS -I/home/john/Git/dmd/generated/linux/release/64/../../../../../druntime/import -I/home/john/Git/dmd/generated/linux/release/64/../../../../../phobos -L-L/home/john/Git/dmd/generated/linux/release/64/../../../../../phobos/generated/linux/release/64 -L--export-dynamic -fPIC --- core.exception.RangeError dmd/root/array.d(246): Range violation ---------------- ??:? _d_arrayboundsp [0x7f38a58d2b71] dmd/root/array.d:246 _ZN5ArrayIP10ExpressionEixEm [0x7f38a57282ba] dmd/escape.d:211 bool dmd.escape.checkMutableArguments(dmd.dscope.Scope*, dmd.func.FuncDeclaration, dmd.mtype.TypeFunction, dmd.expression.Expression, dmd.root.array.Array!(dmd.expression.Expression).Array*, bool) [0x7f38a56bf80a] dmd/expressionsem.d:2301 bool dmd.expressionsem.functionParameters(ref const(dmd.globals.Loc), dmd.dscope.Scope*, dmd.mtype.TypeFunction, dmd.expression.Expression, dmd.mtype.Type, dmd.root.array.Array!(dmd.expression.Expression).Array*, dmd.func.FuncDeclaration, dmd.mtype.Type*, dmd.expression.Expression*) [0x7f38a56dc5c0] dmd/expressionsem.d:4909 _ZN25ExpressionSemanticVisitor5visitEP7CallExp [0x7f38a56e53a2] dmd/expression.d:4948 _ZN7CallExp6acceptEP7Visitor [0x7f38a56d0361] dmd/expressionsem.d:11263 _Z18expressionSemanticP10ExpressionP5Scope [0x7f38a56f932f] dmd/statementsem.d:177 _ZN24StatementSemanticVisitor5visitEP12ExpStatement [0x7f38a57a6c11] dmd/statement.d:749 _ZN12ExpStatement6acceptEP7Visitor [0x7f38a57a26f9] dmd/statementsem.d:126 _Z17statementSemanticP9StatementP5Scope [0x7f38a57a6afb] dmd/statementsem.d:235 _ZN24StatementSemanticVisitor5visitEP17CompoundStatement [0x7f38a57a6ed3] dmd/statement.d:937 _ZN17CompoundStatement6acceptEP7Visitor [0x7f38a57a2f75] dmd/statementsem.d:126 _Z17statementSemanticP9StatementP5Scope [0x7f38a57a6afb] dmd/statementsem.d:4361 dmd.statement.Statement dmd.statementsem.semanticNoScope(dmd.statement.Statement, dmd.dscope.Scope*) [0x7f38a57b5127] dmd/statementsem.d:2261 _ZN24StatementSemanticVisitor5visitEP11IfStatement [0x7f38a57ade7e] dmd/statement.d:1403 _ZN11IfStatement6acceptEP7Visitor [0x7f38a57a3e45] dmd/statementsem.d:126 _Z17statementSemanticP9StatementP5Scope [0x7f38a57a6afb] dmd/statementsem.d:235 _ZN24StatementSemanticVisitor5visitEP17CompoundStatement [0x7f38a57a6ed3] dmd/statement.d:937 _ZN17CompoundStatement6acceptEP7Visitor [0x7f38a57a2f75] dmd/statementsem.d:126 _Z17statementSemanticP9StatementP5Scope [0x7f38a57a6afb] dmd/semantic3.d:585 _ZN16Semantic3Visitor5visitEP15FuncDeclaration [0x7f38a579cbe1] dmd/func.d:2511 _ZN15FuncDeclaration6acceptEP7Visitor [0x7f38a5701d55] dmd/semantic3.d:82 _Z9semantic3P7DsymbolP5Scope [0x7f38a579b459] dmd/func.d:436 _ZN15FuncDeclaration17functionSemantic3Ev [0x7f38a56fcc45] dmd/func.d:410 _ZN15FuncDeclaration16functionSemanticEv [0x7f38a56fcb59] dmd/expressionsem.d:916 dmd.expression.Expression dmd.expressionsem.symbolToExp(dmd.dsymbol.Dsymbol, ref const(dmd.globals.Loc), dmd.dscope.Scope*, bool) [0x7f38a56d8360] dmd/expressionsem.d:2572 _ZN25ExpressionSemanticVisitor5visitEP13IdentifierExp [0x7f38a56dd490] dmd/expression.d:2103 _ZN13IdentifierExp6acceptEP7Visitor [0x7f38a56c9789] dmd/expressionsem.d:11263 _Z18expressionSemanticP10ExpressionP5Scope [0x7f38a56f932f] dmd/statementsem.d:177 _ZN24StatementSemanticVisitor5visitEP12ExpStatement [0x7f38a57a6c11] dmd/statement.d:749 _ZN12ExpStatement6acceptEP7Visitor [0x7f38a57a26f9] dmd/statementsem.d:126 _Z17statementSemanticP9StatementP5Scope [0x7f38a57a6afb] dmd/statementsem.d:235 _ZN24StatementSemanticVisitor5visitEP17CompoundStatement [0x7f38a57a6ed3] dmd/statement.d:937 _ZN17CompoundStatement6acceptEP7Visitor [0x7f38a57a2f75] dmd/statementsem.d:126 _Z17statementSemanticP9StatementP5Scope [0x7f38a57a6afb] dmd/semantic3.d:585 _ZN16Semantic3Visitor5visitEP15FuncDeclaration [0x7f38a579cbe1] dmd/parsetimevisitor.d:54 _ZN16ParseTimeVisitorI10ASTCodegenE5visitEP15DtorDeclaration [0x7f38a5796891] dmd/func.d:3591 _ZN15DtorDeclaration6acceptEP7Visitor [0x7f38a57042d1] dmd/semantic3.d:82 _Z9semantic3P7DsymbolP5Scope [0x7f38a579b459] dmd/func.d:436 _ZN15FuncDeclaration17functionSemantic3Ev [0x7f38a56fcc45] dmd/func.d:410 _ZN15FuncDeclaration16functionSemanticEv [0x7f38a56fcb59] dmd/clone.d:871 dmd.func.DtorDeclaration dmd.clone.buildDtor(dmd.aggregate.AggregateDeclaration, dmd.dscope.Scope*) [0x7f38a5629d29] dmd/dsymbolsem.d:4690 _ZN22DsymbolSemanticVisitor5visitEP17StructDeclaration [0x7f38a56a528a] dmd/dstruct.d:603 _ZN17StructDeclaration6acceptEP7Visitor [0x7f38a56901c1] dmd/dsymbolsem.d:564 _Z15dsymbolSemanticP7DsymbolP5Scope [0x7f38a569826d] dmd/dtemplate.d:7286 void dmd.dtemplate.TemplateInstance.expandMembers(dmd.dscope.Scope*).symbolDg(dmd.dsymbol.Dsymbol) [0x7f38a56bc238] dmd/dsymbol.d:99 void dmd.dsymbol.foreachDsymbol(dmd.root.array.Array!(dmd.dsymbol.Dsymbol).Array*, void delegate(dmd.dsymbol.Dsymbol)) [0x7f38a569073b] dmd/dtemplate.d:7291 void dmd.dtemplate.TemplateInstance.expandMembers(dmd.dscope.Scope*) [0x7f38a56bc1c4] dmd/dtemplate.d:7306 void dmd.dtemplate.TemplateInstance.tryExpandMembers(dmd.dscope.Scope*) [0x7f38a56bc2a2] dmd/dsymbolsem.d:6066 void dmd.dsymbolsem.templateInstanceSemantic(dmd.dtemplate.TemplateInstance, dmd.dscope.Scope*, dmd.root.array.Array!(dmd.expression.Expression).Array*) [0x7f38a56a970f] dmd/dsymbolsem.d:2816 _ZN22DsymbolSemanticVisitor5visitEP16TemplateInstance [0x7f38a569f772] dmd/dtemplate.d:7335 _ZN16TemplateInstance6acceptEP7Visitor [0x7f38a56bc35d] dmd/dsymbolsem.d:564 _Z15dsymbolSemanticP7DsymbolP5Scope [0x7f38a569826d] dmd/typesem.d:2849 void dmd.typesem.resolve(dmd.mtype.Type, ref const(dmd.globals.Loc), dmd.dscope.Scope*, dmd.expression.Expression*, dmd.mtype.Type*, dmd.dsymbol.Dsymbol*, bool).visitInstance(dmd.mtype.TypeInstance) [0x7f38a57ca896] dmd/typesem.d:3099 void dmd.typesem.resolve(dmd.mtype.Type, ref const(dmd.globals.Loc), dmd.dscope.Scope*, dmd.expression.Expression*, dmd.mtype.Type*, dmd.dsymbol.Dsymbol*, bool) [0x7f38a57c9cb6] dmd/mtype.d:5362 _ZN12TypeInstance9toDsymbolEP5Scope [0x7f38a5768517] dmd/dsymbolsem.d:6386 void dmd.dsymbolsem.aliasSemantic(dmd.declaration.AliasDeclaration, dmd.dscope.Scope*) [0x7f38a56aa24b] dmd/dsymbolsem.d:746 _ZN22DsymbolSemanticVisitor5visitEP16AliasDeclaration [0x7f38a5698a75] dmd/declaration.d:959 _ZN16AliasDeclaration6acceptEP7Visitor [0x7f38a5655441] dmd/dsymbolsem.d:564 _Z15dsymbolSemanticP7DsymbolP5Scope [0x7f38a569826d] dmd/dsymbolsem.d:1783 _ZN22DsymbolSemanticVisitor14attribSemanticEP17AttribDeclaration [0x7f38a569c116] dmd/dsymbolsem.d:1795 _ZN22DsymbolSemanticVisitor5visitEP17AttribDeclaration [0x7f38a569c17c] dmd/parsetimevisitor.d:73 _ZN16ParseTimeVisitorI10ASTCodegenE5visitEP23StorageClassDeclaration [0x7f38a5796af2] dmd/attrib.d:311 _ZN23StorageClassDeclaration6acceptEP7Visitor [0x7f38a5620d19] dmd/dsymbolsem.d:564 _Z15dsymbolSemanticP7DsymbolP5Scope [0x7f38a569826d] dmd/dsymbolsem.d:2246 void dmd.dsymbolsem.DsymbolSemanticVisitor.visit(dmd.dmodule.Module).__lambda2!(dmd.dsymbol.Dsymbol).__lambda2(dmd.dsymbol.Dsymbol) [0x7f38a569daec] dmd/dsymbol.d:99 void dmd.dsymbol.foreachDsymbol(dmd.root.array.Array!(dmd.dsymbol.Dsymbol).Array*, void delegate(dmd.dsymbol.Dsymbol)) [0x7f38a569073b] dmd/dsymbolsem.d:2243 _ZN22DsymbolSemanticVisitor5visitEP6Module [0x7f38a569da7b] dmd/dmodule.d:1455 _ZN6Module6acceptEP7Visitor [0x7f38a5678779] dmd/dsymbolsem.d:564 _Z15dsymbolSemanticP7DsymbolP5Scope [0x7f38a569826d] dmd/mars.d:565 int dmd.mars.tryMain(ulong, const(char)**, ref dmd.globals.Param) [0x7f38a5755c3c] --
Feb 13 2020