On Monday, 1 June 2020 at 06:35:36 UTC, MaoKo wrote:
Hello, I don't understand why this code segfault on Linux/FreeBSD:

import std.stdio;
struct _Poc {
  this(this) { writeln("_Poc.this(this)"); }
}
void main() {
  _Poc[1] valueArray = [ _Poc() ];
  writeln(valueArray);
}

I've just defined the postblit function in _Poc to see how much it's invoked.
In my system, it's invoked 3 time after the segfault.
When the array is allocated on the heap, nothing happen.
So I guess it's because it's located on the stack but why?

regard.

I cannot help much, but I can say that problem is not about postblit. I tried running the code on https://run.dlang.io/. It works with LDC but not with DMD. Even though postblit is removed, it crashes because there may be a bug with DMD's writeln or there is something more that I missed too.

Reply via email to