core.atomics and handling of backward MemoryOrders

rsw0x via Digitalmars-d digitalmars-d at puremagic.com
Fri Jul 3 15:45:16 PDT 2015


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.


More information about the Digitalmars-d mailing list