[Issue 19830] New: core.memory.__delete destructs arrays of structs in the wrong order
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Fri Apr 26 14:09:07 UTC 2019
https://issues.dlang.org/show_bug.cgi?id=19830
Issue ID: 19830
Summary: core.memory.__delete destructs arrays of structs in
the wrong order
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P1
Component: druntime
Assignee: nobody at puremagic.com
Reporter: slavo5150 at yahoo.com
int sdtor8;
struct S8
{ int b = 7;
int c;
~this()
{
printf("~S8() %d\n", sdtor8);
assert(b == 7);
assert(sdtor8 == c);
sdtor8++;
}
}
void test8()
{
S8[] s = new S8[3];
s[0].c = 2;
s[1].c = 1;
s[2].c = 0;
delete s;
assert(sdtor8 == 3);
}
assertion failure at `assert(sdtor8 == c)` due to __delete destructing in the
order 0,1,2 instead of the order 2,1,0.
--
More information about the Digitalmars-d-bugs
mailing list