Author: ahatanak Date: Wed May 23 10:50:41 2018 New Revision: 333108 URL: http://llvm.org/viewvc/llvm-project?rev=333108&view=rev Log: Do not define template specialization __libcpp_is_floating_point<__fp16> if the compiler is not clang.
gcc doesn't allow using __fp16 on non-ARM targets. Modified: libcxx/trunk/include/type_traits libcxx/trunk/test/libcxx/type_traits/is_floating_point.pass.cpp Modified: libcxx/trunk/include/type_traits URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/type_traits?rev=333108&r1=333107&r2=333108&view=diff ============================================================================== --- libcxx/trunk/include/type_traits (original) +++ libcxx/trunk/include/type_traits Wed May 23 10:50:41 2018 @@ -733,7 +733,9 @@ _LIBCPP_INLINE_VAR _LIBCPP_CONSTEXPR boo // is_floating_point template <class _Tp> struct __libcpp_is_floating_point : public false_type {}; +#ifdef __clang__ template <> struct __libcpp_is_floating_point<__fp16> : public true_type {}; +#endif #ifdef __FLT16_MANT_DIG__ template <> struct __libcpp_is_floating_point<_Float16> : public true_type {}; #endif Modified: libcxx/trunk/test/libcxx/type_traits/is_floating_point.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/libcxx/type_traits/is_floating_point.pass.cpp?rev=333108&r1=333107&r2=333108&view=diff ============================================================================== --- libcxx/trunk/test/libcxx/type_traits/is_floating_point.pass.cpp (original) +++ libcxx/trunk/test/libcxx/type_traits/is_floating_point.pass.cpp Wed May 23 10:50:41 2018 @@ -14,7 +14,9 @@ #include <type_traits> int main() { +#ifdef __clang__ static_assert(std::is_floating_point<__fp16>::value, ""); +#endif #ifdef __FLT16_MANT_DIG__ static_assert(std::is_floating_point<_Float16>::value, ""); #endif _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits