summaryrefslogtreecommitdiffstats
path: root/libcxx/include
diff options
context:
space:
mode:
authorLouis Dionne <ldionne@apple.com>2019-09-04 12:44:19 +0000
committerLouis Dionne <ldionne@apple.com>2019-09-04 12:44:19 +0000
commit801f6a495c6a1d061458df67a1d804c4778437d6 (patch)
treeedbcb2f94fe05ef8fbd067b6f506dbe0bdba9c5f /libcxx/include
parent13dadedc2945e3b0147b862d85ffb0a08cffd24e (diff)
downloadbcm5719-llvm-801f6a495c6a1d061458df67a1d804c4778437d6.tar.gz
bcm5719-llvm-801f6a495c6a1d061458df67a1d804c4778437d6.zip
[libc++] Use __extension__ in a portable manner
llvm-svn: 370889
Diffstat (limited to 'libcxx/include')
-rw-r--r--libcxx/include/__config8
-rw-r--r--libcxx/include/atomic2
2 files changed, 9 insertions, 1 deletions
diff --git a/libcxx/include/__config b/libcxx/include/__config
index 0d9d7237778..03725e28840 100644
--- a/libcxx/include/__config
+++ b/libcxx/include/__config
@@ -485,6 +485,8 @@ typedef __char32_t char32_t;
#define _LIBCPP_HAS_NO_CXX20_CHRONO_LITERALS
#endif
+#define _LIBCPP_DISABLE_EXTENSION_WARNING __extension__
+
#elif defined(_LIBCPP_COMPILER_GCC)
#define _ALIGNAS(x) __attribute__((__aligned__(x)))
@@ -520,6 +522,8 @@ typedef __char32_t char32_t;
#define _LIBCPP_ALWAYS_INLINE __attribute__ ((__always_inline__))
+#define _LIBCPP_DISABLE_EXTENSION_WARNING __extension__
+
#elif defined(_LIBCPP_COMPILER_MSVC)
#define _LIBCPP_TOSTRING2(x) #x
@@ -545,6 +549,8 @@ typedef __char32_t char32_t;
#define _LIBCPP_HAS_NO_VECTOR_EXTENSION
+#define _LIBCPP_DISABLE_EXTENSION_WARNING
+
#elif defined(_LIBCPP_COMPILER_IBM)
#define _ALIGNAS(x) __attribute__((__aligned__(x)))
@@ -565,6 +571,8 @@ typedef __char32_t char32_t;
#define _LIBCPP_HAS_NO_VECTOR_EXTENSION
+#define _LIBCPP_DISABLE_EXTENSION_WARNING
+
#endif // _LIBCPP_COMPILER_[CLANG|GCC|MSVC|IBM]
#if defined(_LIBCPP_OBJECT_FORMAT_COFF)
diff --git a/libcxx/include/atomic b/libcxx/include/atomic
index 0118ab5cf76..6904dd40003 100644
--- a/libcxx/include/atomic
+++ b/libcxx/include/atomic
@@ -920,7 +920,7 @@ struct __cxx_atomic_base_impl {
#endif // _LIBCPP_CXX03_LANG
_LIBCPP_CONSTEXPR explicit __cxx_atomic_base_impl(_Tp value) _NOEXCEPT
: __a_value(value) {}
- __extension__ _Atomic(_Tp) __a_value;
+ _LIBCPP_DISABLE_EXTENSION_WARNING _Atomic(_Tp) __a_value;
};
#define __cxx_atomic_is_lock_free(__s) __c11_atomic_is_lock_free(__s)
OpenPOWER on IntegriCloud