[Issue 12696] GIT HEAD : undefined symbols when -O specified

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Wed Sep 2 22:23:24 PDT 2015


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

--- Comment #8 from Kenji Hara <k.hara.pg at gmail.com> ---
Finally reduced test case:

C.d:
------------
import E;
void foo() { Vector4 v; read(v); }
void main() {}

D.d
------------
import E;
void bar() { Vector4 v; read(v); }

E.d
------------
struct Matrix(T, uint M, uint N = M)
{
    string toString() const { return ""; }
    int opCmp()(auto ref in Matrix v) const { return 0; }
    T[][] arr;
    auto transposed()
    {
        Matrix!(T, N, M) r1;
        Matrix!(T, M, 1) r2;
    }
}
alias Matrix4 = Matrix!(float, 4);
alias Vector4 = Matrix!(float, 1, 4);

void read(T)(T data)
{
    foreach (it; __traits(allMembers, T))
    {
        static if (mixin(`__traits(compiles, &data.` ~ it ~ `)`)) {}
    }
}

build.bat
------------
dmd -c C.d
dmd -c D.d
dmd -c E.d
dmd C.obj D.obj E.obj

--


More information about the Digitalmars-d-bugs mailing list