aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8/libstdc++-v3/include
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.8/libstdc++-v3/include')
-rw-r--r--gcc-4.8/libstdc++-v3/include/ext/atomicity.h5
-rw-r--r--gcc-4.8/libstdc++-v3/include/std/type_traits2
2 files changed, 3 insertions, 4 deletions
diff --git a/gcc-4.8/libstdc++-v3/include/ext/atomicity.h b/gcc-4.8/libstdc++-v3/include/ext/atomicity.h
index 88698bbe3..6139c9346 100644
--- a/gcc-4.8/libstdc++-v3/include/ext/atomicity.h
+++ b/gcc-4.8/libstdc++-v3/include/ext/atomicity.h
@@ -43,9 +43,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// To abstract locking primitives across all thread policies, use:
// __exchange_and_add_dispatch
// __atomic_add_dispatch
-#if defined(_GLIBCXX_ATOMIC_BUILTINS) && (!defined(__clang__) || defined(__i386__))
- // NOTE: clang arm/mips can't compile the following two library calls yet.
- static inline _Atomic_word
+#ifdef _GLIBCXX_ATOMIC_BUILTINS
+ static inline _Atomic_word
__exchange_and_add(volatile _Atomic_word* __mem, int __val)
{ return __atomic_fetch_add(__mem, __val, __ATOMIC_ACQ_REL); }
diff --git a/gcc-4.8/libstdc++-v3/include/std/type_traits b/gcc-4.8/libstdc++-v3/include/std/type_traits
index b5f8c795d..9b7b98695 100644
--- a/gcc-4.8/libstdc++-v3/include/std/type_traits
+++ b/gcc-4.8/libstdc++-v3/include/std/type_traits
@@ -264,7 +264,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
struct __is_floating_point_helper<long double>
: public true_type { };
-#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) && !defined(__clang__)
+#if !defined(__STRICT_ANSI__) && defined(_GLIBCXX_USE_FLOAT128) && (!defined(__clang__) || __clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
template<>
struct __is_floating_point_helper<__float128>
: public true_type { };