@@ -19,63 +19,63 @@ extern "C" {
1919
2020// Atomically stores the given value to the memory location, and returns the
2121// value that was there prior to the store.
22- uint8_t emscripten_atomic_exchange_u8 (void /*uint8_t*/ * addr , uint8_t newVal );
23- uint16_t emscripten_atomic_exchange_u16 (void /*uint16_t*/ * addr , uint16_t newVal );
24- uint32_t emscripten_atomic_exchange_u32 (void /*uint32_t*/ * addr , uint32_t newVal );
25- uint64_t emscripten_atomic_exchange_u64 (void /*uint64_t*/ * addr , uint64_t newVal );
22+ uint8_t emscripten_atomic_exchange_u8 (void /*uint8_t*/ * addr __attribute__(( nonnull )) , uint8_t newVal );
23+ uint16_t emscripten_atomic_exchange_u16 (void /*uint16_t*/ * addr __attribute__(( nonnull )) , uint16_t newVal );
24+ uint32_t emscripten_atomic_exchange_u32 (void /*uint32_t*/ * addr __attribute__(( nonnull )) , uint32_t newVal );
25+ uint64_t emscripten_atomic_exchange_u64 (void /*uint64_t*/ * addr __attribute__(( nonnull )) , uint64_t newVal );
2626
2727// CAS returns the *old* value that was in the memory location before the
2828// operation took place.
2929// That is, if the return value when calling this function equals to 'oldVal',
3030// then the operation succeeded, otherwise it was ignored.
31- uint8_t emscripten_atomic_cas_u8 (void /*uint8_t*/ * addr , uint8_t oldVal , uint8_t newVal );
32- uint16_t emscripten_atomic_cas_u16 (void /*uint16_t*/ * addr , uint16_t oldVal , uint16_t newVal );
33- uint32_t emscripten_atomic_cas_u32 (void /*uint32_t*/ * addr , uint32_t oldVal , uint32_t newVal );
34- uint64_t emscripten_atomic_cas_u64 (void /*uint64_t*/ * addr , uint64_t oldVal , uint64_t newVal );
31+ uint8_t emscripten_atomic_cas_u8 (void /*uint8_t*/ * addr __attribute__(( nonnull )) , uint8_t oldVal , uint8_t newVal );
32+ uint16_t emscripten_atomic_cas_u16 (void /*uint16_t*/ * addr __attribute__(( nonnull )) , uint16_t oldVal , uint16_t newVal );
33+ uint32_t emscripten_atomic_cas_u32 (void /*uint32_t*/ * addr __attribute__(( nonnull )) , uint32_t oldVal , uint32_t newVal );
34+ uint64_t emscripten_atomic_cas_u64 (void /*uint64_t*/ * addr __attribute__(( nonnull )) , uint64_t oldVal , uint64_t newVal );
3535
36- uint8_t emscripten_atomic_load_u8 (const void /*uint8_t*/ * addr );
37- uint16_t emscripten_atomic_load_u16 (const void /*uint16_t*/ * addr );
38- uint32_t emscripten_atomic_load_u32 (const void /*uint32_t*/ * addr );
39- float emscripten_atomic_load_f32 (const void /*float*/ * addr );
40- uint64_t emscripten_atomic_load_u64 (const void /*uint64_t*/ * addr );
41- double emscripten_atomic_load_f64 (const void /*double*/ * addr );
36+ uint8_t emscripten_atomic_load_u8 (const void /*uint8_t*/ * addr __attribute__(( nonnull )) );
37+ uint16_t emscripten_atomic_load_u16 (const void /*uint16_t*/ * addr __attribute__(( nonnull )) );
38+ uint32_t emscripten_atomic_load_u32 (const void /*uint32_t*/ * addr __attribute__(( nonnull )) );
39+ float emscripten_atomic_load_f32 (const void /*float*/ * addr __attribute__(( nonnull )) );
40+ uint64_t emscripten_atomic_load_u64 (const void /*uint64_t*/ * addr __attribute__(( nonnull )) );
41+ double emscripten_atomic_load_f64 (const void /*double*/ * addr __attribute__(( nonnull )) );
4242
4343// Returns the value that was stored (i.e. 'val')
44- uint8_t emscripten_atomic_store_u8 (void /*uint8_t*/ * addr , uint8_t val );
45- uint16_t emscripten_atomic_store_u16 (void /*uint16_t*/ * addr , uint16_t val );
46- uint32_t emscripten_atomic_store_u32 (void /*uint32_t*/ * addr , uint32_t val );
47- float emscripten_atomic_store_f32 (void /*float*/ * addr , float val );
48- uint64_t emscripten_atomic_store_u64 (void /*uint64_t*/ * addr , uint64_t val );
49- double emscripten_atomic_store_f64 (void /*double*/ * addr , double val );
44+ uint8_t emscripten_atomic_store_u8 (void /*uint8_t*/ * addr __attribute__(( nonnull )) , uint8_t val );
45+ uint16_t emscripten_atomic_store_u16 (void /*uint16_t*/ * addr __attribute__(( nonnull )) , uint16_t val );
46+ uint32_t emscripten_atomic_store_u32 (void /*uint32_t*/ * addr __attribute__(( nonnull )) , uint32_t val );
47+ float emscripten_atomic_store_f32 (void /*float*/ * addr __attribute__(( nonnull )) , float val );
48+ uint64_t emscripten_atomic_store_u64 (void /*uint64_t*/ * addr __attribute__(( nonnull )) , uint64_t val );
49+ double emscripten_atomic_store_f64 (void /*double*/ * addr __attribute__(( nonnull )) , double val );
5050
5151void emscripten_atomic_fence (void );
5252
5353// Each of the functions below (add, sub, and, or, xor) return the value that
5454// was in the memory location before the operation occurred.
55- uint8_t emscripten_atomic_add_u8 (void /*uint8_t*/ * addr , uint8_t val );
56- uint16_t emscripten_atomic_add_u16 (void /*uint16_t*/ * addr , uint16_t val );
57- uint32_t emscripten_atomic_add_u32 (void /*uint32_t*/ * addr , uint32_t val );
58- uint64_t emscripten_atomic_add_u64 (void /*uint64_t*/ * addr , uint64_t val );
55+ uint8_t emscripten_atomic_add_u8 (void /*uint8_t*/ * addr __attribute__(( nonnull )) , uint8_t val );
56+ uint16_t emscripten_atomic_add_u16 (void /*uint16_t*/ * addr __attribute__(( nonnull )) , uint16_t val );
57+ uint32_t emscripten_atomic_add_u32 (void /*uint32_t*/ * addr __attribute__(( nonnull )) , uint32_t val );
58+ uint64_t emscripten_atomic_add_u64 (void /*uint64_t*/ * addr __attribute__(( nonnull )) , uint64_t val );
5959
60- uint8_t emscripten_atomic_sub_u8 (void /*uint8_t*/ * addr , uint8_t val );
61- uint16_t emscripten_atomic_sub_u16 (void /*uint16_t*/ * addr , uint16_t val );
62- uint32_t emscripten_atomic_sub_u32 (void /*uint32_t*/ * addr , uint32_t val );
63- uint64_t emscripten_atomic_sub_u64 (void /*uint64_t*/ * addr , uint64_t val );
60+ uint8_t emscripten_atomic_sub_u8 (void /*uint8_t*/ * addr __attribute__(( nonnull )) , uint8_t val );
61+ uint16_t emscripten_atomic_sub_u16 (void /*uint16_t*/ * addr __attribute__(( nonnull )) , uint16_t val );
62+ uint32_t emscripten_atomic_sub_u32 (void /*uint32_t*/ * addr __attribute__(( nonnull )) , uint32_t val );
63+ uint64_t emscripten_atomic_sub_u64 (void /*uint64_t*/ * addr __attribute__(( nonnull )) , uint64_t val );
6464
65- uint8_t emscripten_atomic_and_u8 (void /*uint8_t*/ * addr , uint8_t val );
66- uint16_t emscripten_atomic_and_u16 (void /*uint16_t*/ * addr , uint16_t val );
67- uint32_t emscripten_atomic_and_u32 (void /*uint32_t*/ * addr , uint32_t val );
68- uint64_t emscripten_atomic_and_u64 (void /*uint64_t*/ * addr , uint64_t val );
65+ uint8_t emscripten_atomic_and_u8 (void /*uint8_t*/ * addr __attribute__(( nonnull )) , uint8_t val );
66+ uint16_t emscripten_atomic_and_u16 (void /*uint16_t*/ * addr __attribute__(( nonnull )) , uint16_t val );
67+ uint32_t emscripten_atomic_and_u32 (void /*uint32_t*/ * addr __attribute__(( nonnull )) , uint32_t val );
68+ uint64_t emscripten_atomic_and_u64 (void /*uint64_t*/ * addr __attribute__(( nonnull )) , uint64_t val );
6969
70- uint8_t emscripten_atomic_or_u8 (void /*uint8_t*/ * addr , uint8_t val );
71- uint16_t emscripten_atomic_or_u16 (void /*uint16_t*/ * addr , uint16_t val );
72- uint32_t emscripten_atomic_or_u32 (void /*uint32_t*/ * addr , uint32_t val );
73- uint64_t emscripten_atomic_or_u64 (void /*uint64_t*/ * addr , uint64_t val );
70+ uint8_t emscripten_atomic_or_u8 (void /*uint8_t*/ * addr __attribute__(( nonnull )) , uint8_t val );
71+ uint16_t emscripten_atomic_or_u16 (void /*uint16_t*/ * addr __attribute__(( nonnull )) , uint16_t val );
72+ uint32_t emscripten_atomic_or_u32 (void /*uint32_t*/ * addr __attribute__(( nonnull )) , uint32_t val );
73+ uint64_t emscripten_atomic_or_u64 (void /*uint64_t*/ * addr __attribute__(( nonnull )) , uint64_t val );
7474
75- uint8_t emscripten_atomic_xor_u8 (void /*uint8_t*/ * addr , uint8_t val );
76- uint16_t emscripten_atomic_xor_u16 (void /*uint16_t*/ * addr , uint16_t val );
77- uint32_t emscripten_atomic_xor_u32 (void /*uint32_t*/ * addr , uint32_t val );
78- uint64_t emscripten_atomic_xor_u64 (void /*uint64_t*/ * addr , uint64_t val );
75+ uint8_t emscripten_atomic_xor_u8 (void /*uint8_t*/ * addr __attribute__(( nonnull )) , uint8_t val );
76+ uint16_t emscripten_atomic_xor_u16 (void /*uint16_t*/ * addr __attribute__(( nonnull )) , uint16_t val );
77+ uint32_t emscripten_atomic_xor_u32 (void /*uint32_t*/ * addr __attribute__(( nonnull )) , uint32_t val );
78+ uint64_t emscripten_atomic_xor_u64 (void /*uint64_t*/ * addr __attribute__(( nonnull )) , uint64_t val );
7979
8080#ifdef __cplusplus
8181}
0 commit comments