Some C playing around:

import core.stdc.stdio;

void main()
{
    int x = 5;
    printf("The action is:\n%s", x);
}

There does not seem to be a type check on calling the C printf... %s expects a string but entering the wrong type like a integer simply dumps down to this.

The action is:
object.Error@(0): Access Violation

Playing around a bit more and even D can be made to crash:

import std.stdio : writefln;
void main()
{
    int x = 5;
    writefln("The action is:\n%i", x);
}

std.format.FormatException@C:\D\dmd2\windows\bin\..\..\src\phobos\std\format.d(1744):

Interesting ways to crash the code. I do not think this is expected behavior. :)

And yes, i know that %i is not valid in this case but the fact that phobos simply crashes with a exception, no proper error warning ...

If this error was somewhere in a large code base, it will be hard and time consuming to track down as the dumps do not show any trace / line error information.

And side note: The first spot i look to report a bug, is on the DMD git repository ( and so do a lot of other people these days ). Do not even know where the bugs are reported here. Not very convenient.
  • Bug? Wulfklaue via Digitalmars-d
    • Re: Bug? Nicholas Wilson via Digitalmars-d
    • Re: Bug? Jonathan M Davis via Digitalmars-d
    • Re: Bug? Mike Parker via Digitalmars-d

Reply via email to