On Thursday, 2 July 2020 at 15:20:23 UTC, Ali Çehreli wrote:
According to its date, it was written when I was working for Weka. Apparently, ldc took care of it for them after all.

If so, then without them posting any issue beforehand or giving any feedback afterwards.

> For recent LDC versions, the 'solution' is to (statically)
initialize
> the array with zeros, as fully zero-initialized structs don't
feature
> any explicit .init symbols anymore.

What about floating point and char types? Their .init values are not all zeros in D spec. (I don't think this matters in my case but still.)

That's why all you have to do, in order not to have recent LDC emit the struct's init symbol, is to initialize these members manually with zeros:

struct S { double[elementCount] a = 0; }
void foo() { S s; } // compiler does a memset

`= void` for members doesn't work and, I dare say, not work anytime soon if ever.

Reply via email to