[Issue 8079] New: Memory corruption on stack-allocated temporary static arrays
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Thu May 10 11:59:33 PDT 2012
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: nobody at puremagic.com
ReportedBy: hsteoh at quickfur.ath.cx
--- Comment #0 from hsteoh at 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: -------
More information about the Digitalmars-d-bugs
mailing list