https://issues.dlang.org/show_bug.cgi?id=21578
--- Comment #1 from ZombineDev <[email protected]> --- Test case: import core.atomic; shared(ulong)[] array = [2, 4, 6, 8, 10, 12, 14, 16, 19, 20]; { shared ulong* ptr = &array[0]; shared(ulong)* prevPtr = atomicFetchAdd(ptr, 3); assert(prevPtr == &array[0]); // OK assert(*prevPtr == 2); // OK assert(*ptr == 8); // OK } { shared ulong* ptr = &array[5]; shared(ulong)* prevPtr = atomicFetchSub(ptr, 4); assert(prevPtr == &array[5]); // OK assert(*prevPtr == 12); // OK assert(*ptr == 4); //fails } --
