static T loadRMW(const Unaligned<T>& x) {
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wuninitialized"
-// make sure we compile without warning on gcc 4.6 with -Wpragmas
-#if __GNUC_PREREQ(4, 7)
+#if !__clang__ // for gcc version [4.8, ?)
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
#endif
return x.value;
loadRMW(const UnalignedNoASan<T>& x) {
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wuninitialized"
-// make sure we compile without warning on gcc 4.6 with -Wpragmas
-#if __GNUC_PREREQ(4, 7)
+#if !__clang__ // for gcc version [4.8, ?)
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
#endif
return x.value;
static T loadRMW(const T& x) {
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wuninitialized"
-#if __GNUC_PREREQ(4, 7)
+#if !__clang__ // for gcc version [4.8, ?)
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
#endif
return x;
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wuninitialized"
-#if __GNUC_PREREQ(4, 7)
+#if !__clang__ // for gcc version [4.8, ?)
#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
#endif