[Issue 7506] New: Postblit does not called properly with inlining
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed Feb 15 06:33:30 PST 2012
http://d.puremagic.com/issues/show_bug.cgi?id=7506
Summary: Postblit does not called properly with inlining
Product: D
Version: D2
Platform: All
OS/Version: All
Status: NEW
Keywords: wrong-code
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody at puremagic.com
ReportedBy: k.hara.pg at gmail.com
--- Comment #0 from Kenji Hara <k.hara.pg at gmail.com> 2012-02-15 06:33:28 PST ---
This is a derived issue from bug 7353.
test.d
----
import std.stdio;
struct S
{
static uint ci = 0;
static uint di = 0;
uint i;
this(int x) { i = ci++; writeln("new: ", i); }
this(this) { i = ci++; writeln("copy ", i); }
~this() { ++di; writeln("del ", i); }
S save3()
{
return this;
}
}
void main()
{
{
auto s = S(1), t = S(1);
assert(S.ci == 2);
t = s.save3();
assert(S.ci == 3); // line 23
}
}
Command line:
----
dmd -inline -run test.d
Output:
----
new: 0
new: 1
del 1
del 0
del 0
core.exception.AssertError at test(23): Assertion failure
Postblit is not called.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
More information about the Digitalmars-d-bugs
mailing list