From 5612bf697682de0dab83b2f357ce4254609fb471 Mon Sep 17 00:00:00 2001 From: Iain Sandoe Date: Sat, 11 Apr 2015 19:58:48 +0100 Subject: [PATCH] Fix up thread constexpr for GCC where the PPC port can't do long long constexpr. --- libcxx/include/thread | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libcxx/include/thread b/libcxx/include/thread index 0629d70efda..7c8934184f2 100644 --- a/libcxx/include/thread +++ b/libcxx/include/thread @@ -435,7 +435,12 @@ sleep_for(const chrono::duration<_Rep, _Period>& __d) using namespace chrono; if (__d > duration<_Rep, _Period>::zero()) { +#if defined(_LIBCPP_COMPILER_GCC) && (__powerpc__ || __POWERPC__) + // GCC's long double const folding is incomplete for IBM128 long doubles. + _LIBCPP_CONSTEXPR duration _Max = duration(ULLONG_MAX/1000000000ULL) ; +#else _LIBCPP_CONSTEXPR duration _Max = nanoseconds::max(); +#endif nanoseconds __ns; if (__d < _Max) {