digitalmars.D.bugs - [Issue 21595] New: DMD crashes with -preview=dip1021 and
- d-bugmail puremagic.com (292/292) Jan 30 2021 https://issues.dlang.org/show_bug.cgi?id=21595
https://issues.dlang.org/show_bug.cgi?id=21595 Issue ID: 21595 Summary: DMD crashes with -preview=dip1021 and std.string.indexOf Product: D Version: D2 Hardware: x86_64 OS: Linux Status: NEW Severity: major Priority: P1 Component: dmd Assignee: nobody puremagic.com Reporter: dlang ryanjframe.com With the code: --- void main() { import std.string : indexOf; "a".indexOf('a'); } --- Compiled via `dmd -preview=dip1021 code.d` The compiler will crash. I've reproduced this with every dmd version I've checked against: - head - 2.095.0 - 2.094.2 - 2.093.0 - 2.090.0 - 2.089.1 (the flag was introduced in 2.089) It only crashes if searching for a character -- a string parameter is fine. Compiler output: DMD v2.095.0-136-gb48327458 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 ./dmd version v2.095.0-136-gb48327458 config dmd.conf DFLAGS -I./../../../../../druntime/import -I./../../../../../phobos -L-L./../../../../../phobos/generated/linux/release/64 -L--export-dynamic -fPIC --- core.exception.AssertError src/dmd/escape.d(1865): Assertion failure ---------------- ??:? _d_assertp [0x130a5922ab1] src/dmd/escape.d:1865 _ZN11escapeByRef16EscapeRefVisitor5visitEP6VarExp [0x130a570da2f] src/dmd/expression.d:3741 _ZN6VarExp6acceptEP7Visitor [0x130a57172f5] src/dmd/escape.d:2054 void dmd.escape.escapeByRef(dmd.expression.Expression, dmd.escape.EscapeByResults*, bool) [0x130a570d948] src/dmd/escape.d:152 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) [0x130a5708f17] src/dmd/expressionsem.d:2443 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*) [0x130a57274a2] src/dmd/expressionsem.d:5107 _ZN25ExpressionSemanticVisitor5visitEP7CallExp [0x130a5730517] src/dmd/expression.d:5126 _ZN7CallExp6acceptEP7Visitor [0x130a571a979] src/dmd/expressionsem.d:11670 _Z18expressionSemanticP10ExpressionP5Scope [0x130a5744de7] src/dmd/opover.d:508 _ZN11op_overload10OpOverload5visitEP8ArrayExp [0x130a578f79c] src/dmd/expression.d:5587 _ZN8ArrayExp6acceptEP7Visitor [0x130a571b92d] src/dmd/opover.d:1321 dmd.expression.Expression dmd.opover.op_overload(dmd.expression.Expression, dmd.dscope.Scope*, dmd.tokens.TOK*) [0x130a578ea37] src/dmd/expressionsem.d:7844 _ZN25ExpressionSemanticVisitor5visitEP8ArrayExp [0x130a5739395] src/dmd/expression.d:5587 _ZN8ArrayExp6acceptEP7Visitor [0x130a571b92d] src/dmd/expressionsem.d:11670 _Z18expressionSemanticP10ExpressionP5Scope [0x130a5744de7] src/dmd/typesem.d:2903 void dmd.typesem.resolve(dmd.mtype.Type, ref const(dmd.globals.Loc), dmd.dscope.Scope*, out dmd.expression.Expression, out dmd.mtype.Type, out dmd.dsymbol.Dsymbol, bool).visitTypeof(dmd.mtype.TypeTypeof) [0x130a57e4fb9] src/dmd/typesem.d:3130 void dmd.typesem.resolve(dmd.mtype.Type, ref const(dmd.globals.Loc), dmd.dscope.Scope*, out dmd.expression.Expression, out dmd.mtype.Type, out dmd.dsymbol.Dsymbol, bool) [0x130a57e42b4] src/dmd/typesem.d:1739 dmd.mtype.Type dmd.typesem.typeSemantic(dmd.mtype.Type, ref const(dmd.globals.Loc), dmd.dscope.Scope*).visitTypeof(dmd.mtype.TypeTypeof) [0x130a57e1cbf] src/dmd/typesem.d:2001 _Z12typeSemanticP4TypeRK3LocP5Scope [0x130a57de945] src/dmd/mtype.d:945 _ZN4Type11trySemanticERK3LocP5Scope [0x130a57757d6] src/dmd/expressionsem.d:5506 _ZN25ExpressionSemanticVisitor5visitEP5IsExp [0x130a5731997] src/dmd/expression.d:4213 _ZN5IsExp6acceptEP7Visitor [0x130a571863d] src/dmd/expressionsem.d:11670 _Z18expressionSemanticP10ExpressionP5Scope [0x130a5744de7] src/dmd/expressionsem.d:10882 _ZN25ExpressionSemanticVisitor5visitEP10LogicalExp [0x130a5742aae] src/dmd/expression.d:6510 _ZN10LogicalExp6acceptEP7Visitor [0x130a571d315] src/dmd/expressionsem.d:11670 _Z18expressionSemanticP10ExpressionP5Scope [0x130a5744de7] src/dmd/expressionsem.d:10882 _ZN25ExpressionSemanticVisitor5visitEP10LogicalExp [0x130a5742aae] src/dmd/expression.d:6510 _ZN10LogicalExp6acceptEP7Visitor [0x130a571d315] src/dmd/expressionsem.d:11670 _Z18expressionSemanticP10ExpressionP5Scope [0x130a5744de7] src/dmd/expressionsem.d:10882 _ZN25ExpressionSemanticVisitor5visitEP10LogicalExp [0x130a5742aae] src/dmd/expression.d:6510 _ZN10LogicalExp6acceptEP7Visitor [0x130a571d315] src/dmd/expressionsem.d:11670 _Z18expressionSemanticP10ExpressionP5Scope [0x130a5744de7] src/dmd/expressionsem.d:10882 _ZN25ExpressionSemanticVisitor5visitEP10LogicalExp [0x130a5742aae] src/dmd/expression.d:6510 _ZN10LogicalExp6acceptEP7Visitor [0x130a571d315] src/dmd/expressionsem.d:11670 _Z18expressionSemanticP10ExpressionP5Scope [0x130a5744de7] src/dmd/expressionsem.d:10882 _ZN25ExpressionSemanticVisitor5visitEP10LogicalExp [0x130a5742aae] src/dmd/expression.d:6510 _ZN10LogicalExp6acceptEP7Visitor [0x130a571d315] src/dmd/expressionsem.d:11670 _Z18expressionSemanticP10ExpressionP5Scope [0x130a5744de7] src/dmd/dsymbolsem.d:1496 _ZN22DsymbolSemanticVisitor5visitEP14VarDeclaration [0x130a56a9d14] src/dmd/declaration.d:1633 _ZN14VarDeclaration6acceptEP7Visitor [0x130a5664da1] src/dmd/dsymbolsem.d:581 _Z15dsymbolSemanticP7DsymbolP5Scope [0x130a56a6efd] src/dmd/dtemplate.d:7402 void dmd.dtemplate.TemplateInstance.expandMembers(dmd.dscope.Scope*).symbolDg(dmd.dsymbol.Dsymbol) [0x130a56cca98] src/dmd/dsymbol.d:103 void dmd.dsymbol.foreachDsymbol(dmd.root.array.Array!(dmd.dsymbol.Dsymbol).Array*, void delegate(dmd.dsymbol.Dsymbol)) [0x130a569edfb] src/dmd/dtemplate.d:7407 void dmd.dtemplate.TemplateInstance.expandMembers(dmd.dscope.Scope*) [0x130a56cca25] src/dmd/dtemplate.d:7422 void dmd.dtemplate.TemplateInstance.tryExpandMembers(dmd.dscope.Scope*) [0x130a56ccb02] src/dmd/dsymbolsem.d:6261 void dmd.dsymbolsem.templateInstanceSemantic(dmd.dtemplate.TemplateInstance, dmd.dscope.Scope*, dmd.root.array.Array!(dmd.expression.Expression).Array*) [0x130a56b8b4c] src/dmd/dsymbolsem.d:2870 _ZN22DsymbolSemanticVisitor5visitEP16TemplateInstance [0x130a56ae6d6] src/dmd/dtemplate.d:7451 _ZN16TemplateInstance6acceptEP7Visitor [0x130a56ccbbd] src/dmd/dsymbolsem.d:581 _Z15dsymbolSemanticP7DsymbolP5Scope [0x130a56a6efd] src/dmd/expressionsem.d:3362 _ZN25ExpressionSemanticVisitor5visitEP8ScopeExp [0x130a572a086] src/dmd/expression.d:3471 _ZN8ScopeExp6acceptEP7Visitor [0x130a5716955] src/dmd/expressionsem.d:11670 _Z18expressionSemanticP10ExpressionP5Scope [0x130a5744de7] src/dmd/staticcond.d:94 bool dmd.staticcond.evalStaticCondition(dmd.dscope.Scope*, dmd.expression.Expression, dmd.expression.Expression, out bool, dmd.root.array.Array!(dmd.expression.Expression).Array*).impl(dmd.expression.Expression) [0x130a57d09a4] src/dmd/staticcond.d:124 bool dmd.staticcond.evalStaticCondition(dmd.dscope.Scope*, dmd.expression.Expression, dmd.expression.Expression, out bool, dmd.root.array.Array!(dmd.expression.Expression).Array*) [0x130a57d07f7] src/dmd/semantic2.d:102 _ZN16Semantic2Visitor5visitEP12StaticAssert [0x130a57b1a14] src/dmd/staticassert.d:64 _ZN12StaticAssert6acceptEP7Visitor [0x130a57d07aa] src/dmd/semantic2.d:78 _Z9semantic2P7DsymbolP5Scope [0x130a57b1941] src/dmd/statementsem.d:2503 _ZN24StatementSemanticVisitor5visitEP21StaticAssertStatement [0x130a57c6f87] src/dmd/statement.d:1625 _ZN21StaticAssertStatement6acceptEP7Visitor [0x130a57bc9a9] src/dmd/statementsem.d:137 _Z17statementSemanticP9StatementP5Scope [0x130a57bf0cf] src/dmd/statementsem.d:250 _ZN24StatementSemanticVisitor5visitEP17CompoundStatement [0x130a57bf46f] src/dmd/statement.d:967 _ZN17CompoundStatement6acceptEP7Visitor [0x130a57bb435] src/dmd/statementsem.d:137 _Z17statementSemanticP9StatementP5Scope [0x130a57bf0cf] src/dmd/semantic3.d:582 _ZN16Semantic3Visitor5visitEP15FuncDeclaration [0x130a57b4bb5] src/dmd/func.d:2634 _ZN15FuncDeclaration6acceptEP7Visitor [0x130a574e0a9] src/dmd/semantic3.d:81 _Z9semantic3P7DsymbolP5Scope [0x130a57b3639] src/dmd/semantic3.d:131 _ZN16Semantic3Visitor5visitEP16TemplateInstance [0x130a57b37ed] src/dmd/dtemplate.d:7451 _ZN16TemplateInstance6acceptEP7Visitor [0x130a56ccbbd] src/dmd/semantic3.d:81 _Z9semantic3P7DsymbolP5Scope [0x130a57b3639] src/dmd/dtemplate.d:7439 void dmd.dtemplate.TemplateInstance.trySemantic3(dmd.dscope.Scope*) [0x130a56ccb76] src/dmd/dsymbolsem.d:6399 void dmd.dsymbolsem.templateInstanceSemantic(dmd.dtemplate.TemplateInstance, dmd.dscope.Scope*, dmd.root.array.Array!(dmd.expression.Expression).Array*) [0x130a56b901f] src/dmd/dtemplate.d:3076 void dmd.dtemplate.functionResolve(ref dmd.declaration.MatchAccumulator, dmd.dsymbol.Dsymbol, dmd.globals.Loc, dmd.dscope.Scope*, dmd.root.array.Array!(dmd.root.rootobject.RootObject).Array*, dmd.mtype.Type, dmd.root.array.Array!(dmd.expression.Expression).Array*, const(char)**) [0x130a56c0ac2] src/dmd/func.d:2929 dmd.func.FuncDeclaration dmd.func.resolveFuncCall(ref const(dmd.globals.Loc), dmd.dscope.Scope*, dmd.dsymbol.Dsymbol, dmd.root.array.Array!(dmd.root.rootobject.RootObject).Array*, dmd.mtype.Type, dmd.root.array.Array!(dmd.expression.Expression).Array*, dmd.func.FuncResolveFlag) [0x130a574e8ae] src/dmd/expressionsem.d:4943 _ZN25ExpressionSemanticVisitor5visitEP7CallExp [0x130a572f6ef] src/dmd/expression.d:5126 _ZN7CallExp6acceptEP7Visitor [0x130a571a979] src/dmd/expressionsem.d:11670 _Z18expressionSemanticP10ExpressionP5Scope [0x130a5744de7] src/dmd/expressionsem.d:344 bool dmd.expressionsem.arrayExpressionSemantic(dmd.root.array.Array!(dmd.expression.Expression).Array*, dmd.dscope.Scope*, bool) [0x130a5721216] src/dmd/expressionsem.d:4474 _ZN25ExpressionSemanticVisitor5visitEP7CallExp [0x130a572dc99] src/dmd/expression.d:5126 _ZN7CallExp6acceptEP7Visitor [0x130a571a979] src/dmd/expressionsem.d:11670 _Z18expressionSemanticP10ExpressionP5Scope [0x130a5744de7] src/dmd/statementsem.d:3191 _ZN24StatementSemanticVisitor5visitEP15ReturnStatement [0x130a57c9758] src/dmd/statement.d:1893 _ZN15ReturnStatement6acceptEP7Visitor [0x130a57bd1f1] src/dmd/statementsem.d:137 _Z17statementSemanticP9StatementP5Scope [0x130a57bf0cf] src/dmd/statementsem.d:250 _ZN24StatementSemanticVisitor5visitEP17CompoundStatement [0x130a57bf46f] src/dmd/statement.d:967 _ZN17CompoundStatement6acceptEP7Visitor [0x130a57bb435] src/dmd/statementsem.d:137 _Z17statementSemanticP9StatementP5Scope [0x130a57bf0cf] src/dmd/semantic3.d:582 _ZN16Semantic3Visitor5visitEP15FuncDeclaration [0x130a57b4bb5] src/dmd/func.d:2634 _ZN15FuncDeclaration6acceptEP7Visitor [0x130a574e0a9] src/dmd/semantic3.d:81 _Z9semantic3P7DsymbolP5Scope [0x130a57b3639] src/dmd/semantic3.d:131 _ZN16Semantic3Visitor5visitEP16TemplateInstance [0x130a57b37ed] src/dmd/dtemplate.d:7451 _ZN16TemplateInstance6acceptEP7Visitor [0x130a56ccbbd] src/dmd/semantic3.d:81 _Z9semantic3P7DsymbolP5Scope [0x130a57b3639] src/dmd/dtemplate.d:7439 void dmd.dtemplate.TemplateInstance.trySemantic3(dmd.dscope.Scope*) [0x130a56ccb76] src/dmd/dsymbolsem.d:6399 void dmd.dsymbolsem.templateInstanceSemantic(dmd.dtemplate.TemplateInstance, dmd.dscope.Scope*, dmd.root.array.Array!(dmd.expression.Expression).Array*) [0x130a56b901f] src/dmd/dtemplate.d:3076 void dmd.dtemplate.functionResolve(ref dmd.declaration.MatchAccumulator, dmd.dsymbol.Dsymbol, dmd.globals.Loc, dmd.dscope.Scope*, dmd.root.array.Array!(dmd.root.rootobject.RootObject).Array*, dmd.mtype.Type, dmd.root.array.Array!(dmd.expression.Expression).Array*, const(char)**) [0x130a56c0ac2] src/dmd/func.d:2929 dmd.func.FuncDeclaration dmd.func.resolveFuncCall(ref const(dmd.globals.Loc), dmd.dscope.Scope*, dmd.dsymbol.Dsymbol, dmd.root.array.Array!(dmd.root.rootobject.RootObject).Array*, dmd.mtype.Type, dmd.root.array.Array!(dmd.expression.Expression).Array*, dmd.func.FuncResolveFlag) [0x130a574e8ae] src/dmd/expressionsem.d:4943 _ZN25ExpressionSemanticVisitor5visitEP7CallExp [0x130a572f6ef] src/dmd/expression.d:5126 _ZN7CallExp6acceptEP7Visitor [0x130a571a979] src/dmd/expressionsem.d:11670 _Z18expressionSemanticP10ExpressionP5Scope [0x130a5744de7] src/dmd/statementsem.d:1093 _ZN24StatementSemanticVisitor5visitEP16ForeachStatement [0x130a57c0943] src/dmd/statement.d:1350 _ZN16ForeachStatement6acceptEP7Visitor [0x130a57bc059] src/dmd/statementsem.d:137 _Z17statementSemanticP9StatementP5Scope [0x130a57bf0cf] src/dmd/statementsem.d:250 _ZN24StatementSemanticVisitor5visitEP17CompoundStatement [0x130a57bf46f] src/dmd/statement.d:967 _ZN17CompoundStatement6acceptEP7Visitor [0x130a57bb435] src/dmd/statementsem.d:137 _Z17statementSemanticP9StatementP5Scope [0x130a57bf0cf] src/dmd/statementsem.d:457 _ZN24StatementSemanticVisitor5visitEP14ScopeStatement [0x130a57c0025] src/dmd/statement.d:1075 _ZN14ScopeStatement6acceptEP7Visitor [0x130a57bb83d] src/dmd/statementsem.d:137 _Z17statementSemanticP9StatementP5Scope [0x130a57bf0cf] src/dmd/statementsem.d:4388 dmd.statement.Statement dmd.statementsem.semanticNoScope(dmd.statement.Statement, dmd.dscope.Scope*) [0x130a57cd91f] src/dmd/statementsem.d:4402 dmd.statement.Statement dmd.statementsem.semanticScope(dmd.statement.Statement, dmd.dscope.Scope*, dmd.statement.Statement, dmd.statement.Statement) [0x130a57cd9b1] src/dmd/statementsem.d:2293 _ZN24StatementSemanticVisitor5visitEP11IfStatement [0x130a57c665b] src/dmd/statement.d:1434 _ZN11IfStatement6acceptEP7Visitor [0x130a57bc33d] src/dmd/statementsem.d:137 _Z17statementSemanticP9StatementP5Scope [0x130a57bf0cf] src/dmd/statementsem.d:250 _ZN24StatementSemanticVisitor5visitEP17CompoundStatement [0x130a57bf46f] src/dmd/statement.d:967 _ZN17CompoundStatement6acceptEP7Visitor [0x130a57bb435] src/dmd/statementsem.d:137 _Z17statementSemanticP9StatementP5Scope [0x130a57bf0cf] src/dmd/statementsem.d:457 _ZN24StatementSemanticVisitor5visitEP14ScopeStatement [0x130a57c0025] src/dmd/statement.d:1075 _ZN14ScopeStatement6acceptEP7Visitor [0x130a57bb83d] src/dmd/statementsem.d:137 _Z17statementSemanticP9StatementP5Scope [0x130a57bf0cf] src/dmd/statementsem.d:4388 dmd.statement.Statement dmd.statementsem.semanticNoScope(dmd.statement.Statement, dmd.dscope.Scope*) [0x130a57cd91f] src/dmd/statementsem.d:2287 _ZN24StatementSemanticVisitor5visitEP11IfStatement [0x130a57c65e6] src/dmd/statement.d:1434 _ZN11IfStatement6acceptEP7Visitor [0x130a57bc33d] src/dmd/statementsem.d:137 _Z17statementSemanticP9StatementP5Scope [0x130a57bf0cf] --
Jan 30 2021