http://d.puremagic.com/issues/show_bug.cgi?id=8079
Summary: Memory corruption on stack-allocated temporary static arrays Product: D Version: D2 Platform: x86_64 OS/Version: Linux Status: NEW Severity: critical Priority: P2 Component: DMD AssignedTo: nob...@puremagic.com ReportedBy: hst...@quickfur.ath.cx --- Comment #0 from hst...@quickfur.ath.cx 2012-05-10 12:00:55 PDT --- Code: import std.stdio; struct S { short[4] x; this(short[4] args...) { x[] = args[]; } bool opEquals(in S s) const { for (auto i=0; i < 4; i++) { if (this.x[i] != s.x[i]) return false; } return true; } } void main() { assert(S(1,2,3,4) == S(1,2,3,4)); } Output: with dmd -m64, the assertion fails. Inserting writeln's show that the elements of s in opEquals() are garbage values. Trying to print out the entire array of this or s causes a segfault. On dmd -m32, there is no problem. Not sure if this is related to bug 5570. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------