Code (compile with dmd -m64):
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: the assertion in main fails. Inserting writeln's indicate that
the parameter s to opEquals is corrupted (has garbage values). Trying to
writeln either argument causes a segfault.
Compiling with -m32 works no problem.
Is this a known issue?
T
--
This is a tpyo.