On Friday, 3 July 2015 at 17:51:17 UTC, Iain Buclaw wrote:
Hi,
I'm currently re-writing core.atomics for GDC to switch from
the old GCC __sync_* builtins to the new (more compatible with
how core.atomics is supposed to function) __atomic_* builtins.
https://github.com/D-Programming-GDC/GDC/pull/111
One thing I've noticed in my reading of this, is that the
following are accepted as valid, but makes no sense.
---
atomicStore!(MemoryOrder.acq)(var, val);
var = atomicLoad!(MemoryOrder.rel)(val);
---
I'd like to suggest that it should be considered completely
valid for both cases to throw a compilation error (using static
assert). However I'd like the core druntime team to be on
board with this.
Regards
Iain.
IIRC these flat out error on LDC, I meant to submit a bug report
but I forgot until I read this.