Fix ODR violations in code using <ext/atomicity.h>
Because the inline versions of __exchange_and_add and __atomic_add are also marked static, they cannot be used from templates or other inline functions without ODR violations. This change gives them external linkage, but adds the always_inline attribute. * include/ext/atomicity.h [_GLIBCXX_ATOMIC_BUILTINS] (__atomic_add) (__exchange_and_add): Replace static specifier with always_inline attribute. (__exchange_and_add_single, __atomic_add_single): Likewise. (__exchange_and_add_dispatch, __atomic_add_dispatch): Likewise. Also combine !__gthread_active_p() and !__GTHREADS branches. From-SVN: r273144
Showing
Please
register
or
sign in
to comment