cat > bug.d << CODE struct Foo { __vector(float[4]) x; } void bug() { Foo y; y = Foo([0, 0, 0, 0]); // OK y = Foo(); // NG } CODE dmd -c bug ---- tym = x1d Internal error: backend/cgxmm.c 547 ---- The function xmmload is called with TYnptr.
Both of these now compile, but they segfault at runtime. I'm pretty sure it's because of an unaligned access when reading the initialiser.