https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96153
Bug ID: 96153 Summary: d: struct literals have non-deterministic hash values Product: gcc Version: 10.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: d Assignee: ibuclaw at gdcproject dot org Reporter: ibuclaw at gdcproject dot org Target Milestone: --- struct Checked(T, Hook) { private T payload; Hook hook; size_t toHash() const nothrow @safe { return hashOf(payload) ^ hashOf(hook); } } Checked!(T, Hook) checked(Hook, T)(const T value) { return Checked!(T, Hook)(value); } @system unittest { static struct Hook3 { ulong var1 = ulong.max; uint var2 = uint.max; } assert(checked!Hook3(12).toHash() != checked!Hook3(13).toHash()); assert(checked!Hook3(13).toHash() == checked!Hook3(13).toHash()); }