https://dlang.org/spec/betterc.html doesn't mention struct constructors not working, but I'm getting linker errors when trying to call a struct constructor.

Consider the following program betterc.d

    struct foo
    {
    }

    extern(C) void main()
    {
        auto bar = new foo();
    }

Compile with: dmd -c -m32 betterc.d -betterC
Link with: gcc -m32 betterc.o -Wl,--build-id=none -nostdlib -o "betterc.bin"

Linker output:

    betterc.o: In function `main':
betterc.d:(.text.main[main]+0xa): undefined reference to `_d_newitemT' betterc.o:(.data._D22TypeInfo_S7betterc3foo6__initZ+0x0): undefined reference to `_D15TypeInfo_Struct6__vtblZ'
    collect2: error: ld returned 1 exit status

Is there a mistake in my code, or is the documentation lacking?

Reply via email to