[Issue 20435] New: formating pointer with std.format crashes when using CTFE

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Dec 6 19:46:47 UTC 2019


https://issues.dlang.org/show_bug.cgi?id=20435

          Issue ID: 20435
           Summary: formating pointer with std.format crashes when using
                    CTFE
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody at puremagic.com
          Reporter: bugzilla at d-ecke.de

import std.format;

void main()
{
    auto a = 3;
    auto p = &a;
    auto f = format!"%s"(p);
}

With dmd 2.082.0 this works, with the current version I got:

---
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.089.0-rc.1-265-g5e5340a6f
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    D/dmd/generated/linux/release/64/dmd
version   v2.089.0-rc.1-265-g5e5340a6f
config    D/dmd/generated/linux/release/64/dmd.conf
DFLAGS    -ID/dmd/generated/linux/release/64/../../../../../druntime/import
-ID/dmd/generated/linux/release/64/../../../../../phobos
-L-LD/dmd/generated/linux/release/64/../../../../../phobos/generated/linux/release/64
-L--export-dynamic -fPIC
---
core.exception.AssertError at dmd/dinterpret.d(7319): Assertion failure
----------------
??:? _d_assertp [0xe63ab009]
dmd/dinterpret.d:7319 void
dmd.dinterpret.setValue(dmd.declaration.VarDeclaration,
dmd.expression.Expression) [0xe615198d]
dmd/dinterpret.d:3821 _ZN11Interpreter14assignToLvalueEP6BinExpP10ExpressionS3_
[0xe61470e8]
dmd/dinterpret.d:3642 void
dmd.dinterpret.Interpreter.interpretAssignCommon(dmd.expression.BinExp,
dmd.expression.UnionExp function(ref const(dmd.globals.Loc), dmd.mtype.Type,
dmd.expression.Expression, dmd.expression.Expression)*, int) [0xe614675b]
dmd/dinterpret.d:4234 _ZN11Interpreter5visitEP9AssignExp [0xe61488b0]
dmd/visitor.d:84 _ZN7Visitor5visitEP12ConstructExp [0xe62abc01]
dmd/expression.d:5805 _ZN12ConstructExp6acceptEP7Visitor [0xe61b10dd]
dmd/dinterpret.d:6264 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.expression.Expression,
dmd.dinterpret.InterState*, dmd.dinterpret.CtfeGoal) [0xe614e834]
dmd/dinterpret.d:6292 dmd.expression.Expression
dmd.dinterpret.interpretRegion(dmd.expression.Expression,
dmd.dinterpret.InterState*, dmd.dinterpret.CtfeGoal) [0xe614e8e7]
dmd/dinterpret.d:2248 _ZN11Interpreter5visitEP14DeclarationExp [0xe6142224]
dmd/expression.d:3933 _ZN14DeclarationExp6acceptEP7Visitor [0xe61acf39]
dmd/dinterpret.d:6264 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.expression.Expression,
dmd.dinterpret.InterState*, dmd.dinterpret.CtfeGoal) [0xe614e834]
dmd/dinterpret.d:774 _ZN11Interpreter5visitEP12ExpStatement [0xe613e500]
dmd/statement.d:745 _ZN12ExpStatement6acceptEP7Visitor [0xe627ca01]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:792 _ZN11Interpreter5visitEP17CompoundStatement [0xe613e5c5]
dmd/statement.d:937 _ZN17CompoundStatement6acceptEP7Visitor [0xe627d2d9]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:792 _ZN11Interpreter5visitEP17CompoundStatement [0xe613e5c5]
dmd/statement.d:937 _ZN17CompoundStatement6acceptEP7Visitor [0xe627d2d9]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:626 dmd.expression.Expression
dmd.dinterpret.interpretFunction(dmd.expression.UnionExp*,
dmd.func.FuncDeclaration, dmd.dinterpret.InterState*,
dmd.root.array.Array!(dmd.expression.Expression).Array*,
dmd.expression.Expression) [0xe613e000]
dmd/dinterpret.d:4800 _ZN11Interpreter5visitEP7CallExp [0xe6149e9f]
dmd/expression.d:4948 _ZN7CallExp6acceptEP7Visitor [0xe61af5fd]
dmd/dinterpret.d:6264 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.expression.Expression,
dmd.dinterpret.InterState*, dmd.dinterpret.CtfeGoal) [0xe614e834]
dmd/dinterpret.d:774 _ZN11Interpreter5visitEP12ExpStatement [0xe613e500]
dmd/statement.d:745 _ZN12ExpStatement6acceptEP7Visitor [0xe627ca01]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:792 _ZN11Interpreter5visitEP17CompoundStatement [0xe613e5c5]
dmd/statement.d:937 _ZN17CompoundStatement6acceptEP7Visitor [0xe627d2d9]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:626 dmd.expression.Expression
dmd.dinterpret.interpretFunction(dmd.expression.UnionExp*,
dmd.func.FuncDeclaration, dmd.dinterpret.InterState*,
dmd.root.array.Array!(dmd.expression.Expression).Array*,
dmd.expression.Expression) [0xe613e000]
dmd/dinterpret.d:4800 _ZN11Interpreter5visitEP7CallExp [0xe6149e9f]
dmd/expression.d:4948 _ZN7CallExp6acceptEP7Visitor [0xe61af5fd]
dmd/dinterpret.d:6264 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.expression.Expression,
dmd.dinterpret.InterState*, dmd.dinterpret.CtfeGoal) [0xe614e834]
dmd/dinterpret.d:774 _ZN11Interpreter5visitEP12ExpStatement [0xe613e500]
dmd/statement.d:745 _ZN12ExpStatement6acceptEP7Visitor [0xe627ca01]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:792 _ZN11Interpreter5visitEP17CompoundStatement [0xe613e5c5]
dmd/statement.d:937 _ZN17CompoundStatement6acceptEP7Visitor [0xe627d2d9]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:892 _ZN11Interpreter5visitEP14ScopeStatement [0xe613e932]
dmd/statement.d:1044 _ZN14ScopeStatement6acceptEP7Visitor [0xe627d6c9]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:1304 _ZN11Interpreter5visitEP13CaseStatement [0xe613f7ee]
dmd/statement.d:1671 _ZN13CaseStatement6acceptEP7Visitor [0xe627eaf9]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:792 _ZN11Interpreter5visitEP17CompoundStatement [0xe613e5c5]
dmd/statement.d:937 _ZN17CompoundStatement6acceptEP7Visitor [0xe627d2d9]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:892 _ZN11Interpreter5visitEP14ScopeStatement [0xe613e932]
dmd/statement.d:1044 _ZN14ScopeStatement6acceptEP7Visitor [0xe627d6c9]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:815 _ZN11Interpreter5visitEP21UnrolledLoopStatement
[0xe613e689]
dmd/statement.d:1002 _ZN21UnrolledLoopStatement6acceptEP7Visitor [0xe627d569]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:792 _ZN11Interpreter5visitEP17CompoundStatement [0xe613e5c5]
dmd/statement.d:937 _ZN17CompoundStatement6acceptEP7Visitor [0xe627d2d9]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:892 _ZN11Interpreter5visitEP14ScopeStatement [0xe613e932]
dmd/statement.d:1044 _ZN14ScopeStatement6acceptEP7Visitor [0xe627d6c9]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:1280 _ZN11Interpreter5visitEP15SwitchStatement [0xe613f71b]
dmd/statement.d:1642 _ZN15SwitchStatement6acceptEP7Visitor [0xe627ea01]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:1382 _ZN11Interpreter5visitEP14LabelStatement [0xe613fa76]
dmd/statement.d:2363 _ZN14LabelStatement6acceptEP7Visitor [0xe6280119]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:792 _ZN11Interpreter5visitEP17CompoundStatement [0xe613e5c5]
dmd/statement.d:937 _ZN17CompoundStatement6acceptEP7Visitor [0xe627d2d9]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:892 _ZN11Interpreter5visitEP14ScopeStatement [0xe613e932]
dmd/statement.d:1044 _ZN14ScopeStatement6acceptEP7Visitor [0xe627d6c9]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:1169 _ZN11Interpreter5visitEP12ForStatement [0xe613f28a]
dmd/statement.d:1265 _ZN12ForStatement6acceptEP7Visitor [0xe627dd6d]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:792 _ZN11Interpreter5visitEP17CompoundStatement [0xe613e5c5]
dmd/statement.d:937 _ZN17CompoundStatement6acceptEP7Visitor [0xe627d2d9]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:792 _ZN11Interpreter5visitEP17CompoundStatement [0xe613e5c5]
dmd/statement.d:937 _ZN17CompoundStatement6acceptEP7Visitor [0xe627d2d9]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:626 dmd.expression.Expression
dmd.dinterpret.interpretFunction(dmd.expression.UnionExp*,
dmd.func.FuncDeclaration, dmd.dinterpret.InterState*,
dmd.root.array.Array!(dmd.expression.Expression).Array*,
dmd.expression.Expression) [0xe613e000]
dmd/dinterpret.d:4800 _ZN11Interpreter5visitEP7CallExp [0xe6149e9f]
dmd/expression.d:4948 _ZN7CallExp6acceptEP7Visitor [0xe61af5fd]
dmd/dinterpret.d:6264 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.expression.Expression,
dmd.dinterpret.InterState*, dmd.dinterpret.CtfeGoal) [0xe614e834]
dmd/dinterpret.d:6292 dmd.expression.Expression
dmd.dinterpret.interpretRegion(dmd.expression.Expression,
dmd.dinterpret.InterState*, dmd.dinterpret.CtfeGoal) [0xe614e8e7]
dmd/dinterpret.d:3427 void
dmd.dinterpret.Interpreter.interpretAssignCommon(dmd.expression.BinExp,
dmd.expression.UnionExp function(ref const(dmd.globals.Loc), dmd.mtype.Type,
dmd.expression.Expression, dmd.expression.Expression)*, int) [0xe6145e53]
dmd/dinterpret.d:4234 _ZN11Interpreter5visitEP9AssignExp [0xe61488b0]
dmd/visitor.d:84 _ZN7Visitor5visitEP12ConstructExp [0xe62abc01]
dmd/expression.d:5805 _ZN12ConstructExp6acceptEP7Visitor [0xe61b10dd]
dmd/dinterpret.d:6264 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.expression.Expression,
dmd.dinterpret.InterState*, dmd.dinterpret.CtfeGoal) [0xe614e834]
dmd/dinterpret.d:6292 dmd.expression.Expression
dmd.dinterpret.interpretRegion(dmd.expression.Expression,
dmd.dinterpret.InterState*, dmd.dinterpret.CtfeGoal) [0xe614e8e7]
dmd/dinterpret.d:2248 _ZN11Interpreter5visitEP14DeclarationExp [0xe6142224]
dmd/expression.d:3933 _ZN14DeclarationExp6acceptEP7Visitor [0xe61acf39]
dmd/dinterpret.d:6264 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.expression.Expression,
dmd.dinterpret.InterState*, dmd.dinterpret.CtfeGoal) [0xe614e834]
dmd/dinterpret.d:774 _ZN11Interpreter5visitEP12ExpStatement [0xe613e500]
dmd/statement.d:745 _ZN12ExpStatement6acceptEP7Visitor [0xe627ca01]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:792 _ZN11Interpreter5visitEP17CompoundStatement [0xe613e5c5]
dmd/statement.d:937 _ZN17CompoundStatement6acceptEP7Visitor [0xe627d2d9]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:892 _ZN11Interpreter5visitEP14ScopeStatement [0xe613e932]
dmd/statement.d:1044 _ZN14ScopeStatement6acceptEP7Visitor [0xe627d6c9]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:6337 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.statement.Statement, dmd.dinterpret.InterState*)
[0xe614ea97]
dmd/dinterpret.d:1407 _ZN11Interpreter5visitEP17TryCatchStatement [0xe613fbcf]
dmd/statement.d:1978 _ZN17TryCatchStatement6acceptEP7Visitor [0xe627f3dd]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:792 _ZN11Interpreter5visitEP17CompoundStatement [0xe613e5c5]
dmd/statement.d:937 _ZN17CompoundStatement6acceptEP7Visitor [0xe627d2d9]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:792 _ZN11Interpreter5visitEP17CompoundStatement [0xe613e5c5]
dmd/statement.d:937 _ZN17CompoundStatement6acceptEP7Visitor [0xe627d2d9]
dmd/dinterpret.d:6329 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.statement.Statement,
dmd.dinterpret.InterState*) [0xe614ea67]
dmd/dinterpret.d:626 dmd.expression.Expression
dmd.dinterpret.interpretFunction(dmd.expression.UnionExp*,
dmd.func.FuncDeclaration, dmd.dinterpret.InterState*,
dmd.root.array.Array!(dmd.expression.Expression).Array*,
dmd.expression.Expression) [0xe613e000]
dmd/dinterpret.d:4800 _ZN11Interpreter5visitEP7CallExp [0xe6149e9f]
dmd/expression.d:4948 _ZN7CallExp6acceptEP7Visitor [0xe61af5fd]
dmd/dinterpret.d:6264 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.UnionExp*, dmd.expression.Expression,
dmd.dinterpret.InterState*, dmd.dinterpret.CtfeGoal) [0xe614e834]
dmd/dinterpret.d:6274 dmd.expression.Expression
dmd.dinterpret.interpret(dmd.expression.Expression, dmd.dinterpret.InterState*,
dmd.dinterpret.CtfeGoal) [0xe614e88d]
dmd/dinterpret.d:90 dmd.expression.Expression
dmd.dinterpret.ctfeInterpret(dmd.expression.Expression) [0xe613bfb5]
dmd/expression.d:1493 _ZN10Expression13ctfeInterpretEv [0xe61a70c4]
dmd/initsem.d:395 dmd.init.Initializer
dmd.initsem.initializerSemantic(dmd.init.Initializer, dmd.dscope.Scope*,
dmd.mtype.Type, dmd.init.NeedInterpret).visitExp(dmd.init.ExpInitializer)
[0xe61f5d0a]

--


More information about the Digitalmars-d-bugs mailing list