From 831c1129547c973c59ccb957ed9fe0cf74102477 Mon Sep 17 00:00:00 2001 From: Eric Fiselier Date: Tue, 15 Dec 2015 00:32:21 +0000 Subject: Fix various GCC mis-configurations for newer versions. This patch goes through and enables C++11 and C++14 features for newer GCC's. The main changes are: 1. Turn on variable templates. (Uses __cpp_variable_templates) 2. Assert atomic is trivially copyable (Uses _GNUC_VER >= 501). 3. Turn on trailing return support for GCC. (Uses _GNUC_VER >= 404) 4. XFAIL void_t test for GCC 5.1 and 5.2. Fixed in GCC 6. llvm-svn: 255585 --- libcxx/include/atomic | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'libcxx/include/atomic') diff --git a/libcxx/include/atomic b/libcxx/include/atomic index b5d5a27b041..abec2a0b565 100644 --- a/libcxx/include/atomic +++ b/libcxx/include/atomic @@ -552,6 +552,12 @@ typedef enum memory_order namespace __gcc_atomic { template struct __gcc_atomic_t { + +#if _GNUC_VER >= 501 + static_assert(is_trivially_copyable<_Tp>::value, + "std::atomic requires that 'Tp' be a trivially copyable type"); +#endif + _LIBCPP_INLINE_VISIBILITY #ifndef _LIBCPP_HAS_NO_DEFAULTED_FUNCTIONS __gcc_atomic_t() _NOEXCEPT = default; -- cgit v1.2.3