@@ -19,63 +19,63 @@ extern "C" {
19
19
20
20
// Atomically stores the given value to the memory location, and returns the
21
21
// 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 );
26
26
27
27
// CAS returns the *old* value that was in the memory location before the
28
28
// operation took place.
29
29
// That is, if the return value when calling this function equals to 'oldVal',
30
30
// 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 );
35
35
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 )) );
42
42
43
43
// 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 );
50
50
51
51
void emscripten_atomic_fence (void );
52
52
53
53
// Each of the functions below (add, sub, and, or, xor) return the value that
54
54
// 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 );
59
59
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 );
64
64
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 );
69
69
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 );
74
74
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 );
79
79
80
80
#ifdef __cplusplus
81
81
}
0 commit comments