#include #include #include #include #include #define OLD 42 int main() { uint8_t buffer[16]; memset(&buffer[0], OLD, sizeof(buffer)); uint8_t o8 = emscripten_atomic_exchange_u8(&buffer[0], 0x12); assert(o8 == OLD); assert(buffer[0] == 0x12); assert(buffer[1] == OLD); uint16_t o16 = emscripten_atomic_exchange_u16(&buffer[0], 0x3456); assert((o16 & 0xff) == 0x12); assert((o16 >> 8) == OLD); assert(buffer[0] == 0x56); assert(buffer[1] == 0x34); assert(buffer[2] == OLD); uint32_t o32 = emscripten_atomic_exchange_u32(&buffer[0], 0xabcdef91); assert((o32 & 0xff) == 0x56); assert(((o32 >> 8) & 0xff) == 0x34); assert(((o32 >> 16) & 0xff) == OLD); assert(((o32 >> 24) & 0xff) == OLD); assert(buffer[0] == 0x91); assert(buffer[1] == 0xef); assert(buffer[2] == 0xcd); assert(buffer[3] == 0xab); assert(buffer[4] == OLD); printf("OK\n"); }