So I am trying to compile using clang. This has detected issues with atomics-internal.h. I can fix most issues with casts:
static inline uint32_t
scm_atomic_subtract_uint32 (uint32_t *loc, uint32_t arg)
{
- return atomic_fetch_sub (loc, arg);
+ return atomic_fetch_sub ((_Atomic uint32_t *)loc, arg);
}
But problems remain with scm_atomic_set_pointer and scm_atomic_ref_pointer which use void** and is apparently not defined for use with atomics.
Apparently gcc does not have a problem with this use but I’m guessing the C11 standard may have an issue with it.