You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As of DMD 2.101.0, the following program compiles and runs successfully to completion:
---
struct S
{
this(ref S)
{
assert(0);
}
}
void main()
{
S[] a = [ S() ];
auto p = a.ptr;
// extend until reallocation
while (a.ptr == p)
a.length = a.length + 1; // no assert
}
---
This program should assert at runtime when the array is reallocated, but does not, because the copy constructors of the array's elements are not called.
If the copy constructor is changed to a postblit (`this(this)`), the program asserts at runtime, as expected.
See also issues 23557, 23556, and 20879, which cover array reallocations triggered by other means.
The text was updated successfully, but these errors were encountered:
Paul Backus (@pbackus) reported this on 2022-12-16T17:33:09Z
Transferred from https://issues.dlang.org/show_bug.cgi?id=23563
Description
The text was updated successfully, but these errors were encountered: