https://issues.dlang.org/show_bug.cgi?id=17821
johanenge...@weka.io changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |johanenge...@weka.io --- Comment #1 from johanenge...@weka.io --- The bad codegen bug is LDC specific. DMD errors upon the atomicStore!(ulong,int) call ("core/atomic.d(1185): Error: bad type/size of operands 'mov'"). Test cases: ``` { shared ulong x = 0x1234_5678_8765_4321; atomicStore(x, 0); assert(x == 0); } { struct S { ulong x; alias x this; } shared S s; s = 0x1234_5678_8765_4321; atomicStore(s, 0); assert(s.x == 0); } ``` LDC fix: https://github.com/ldc-developers/druntime/pull/102 I am assuming that we want to preserve the current atomicStore interface, that says it can be called with all types for which `val = newval` is valid. --