<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi,<div><br></div><div>Am I the only one having trouble compiling libc++ with clang TOT.</div><div>For sometime now, clang refuse to compile (and use it) because of the following issue:</div><div><br></div><div><div><font class="Apple-style-span" face="Menlo">../include/ratio:193:19: error: static_assert expression is not an integral constant expression</font></div><div><font class="Apple-style-span" face="Menlo">    static_assert(_Xp != nan && _Yp != nan && __a_x <= max / __a_y, "overflow in __ll_mul");</font></div><div><font class="Apple-style-span" face="Menlo">                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~</font></div><div><font class="Apple-style-span" face="Menlo">../include/ratio:308:13: note: in instantiation of template class 'std::__1::__ll_mul<1, 1>' requested here</font></div><div><font class="Apple-style-span" face="Menlo">            __ll_mul<_R1::num / __gcd_n1_n2, _R2::den / __gcd_d1_d2>::value,</font></div><div><font class="Apple-style-span" face="Menlo">            ^</font></div><div><font class="Apple-style-span" face="Menlo">../include/ratio:315:33: note: in instantiation of template class 'std::__1::__ratio_divide<std::__1::ratio<1, 1000000000>, std::__1::ratio<1, 1000000000> >' requested</font></div><div><font class="Apple-style-span" face="Menlo">      here</font></div><div><font class="Apple-style-span" face="Menlo">template <class _R1, class _R2> using ratio_divide</font></div><div><font class="Apple-style-span" face="Menlo">                                ^</font></div><div><font class="Apple-style-span" face="Menlo">../include/chrono:410:18: note: in instantiation of template type alias 'ratio_divide' requested here</font></div><div><font class="Apple-style-span" face="Menlo">                (ratio_divide<_Period2, period>::type::den == 1 &&</font></div><div><font class="Apple-style-span" face="Menlo">                 ^</font></div><div><font class="Apple-style-span" face="Menlo">../include/chrono:406:9: note: while substituting deduced template arguments into function template 'duration' [with _Rep2 = long long, _Period2 = <no value>]</font></div><div><font class="Apple-style-span" face="Menlo">        duration(const duration<_Rep2, _Period2>& __d,</font></div><div><font class="Apple-style-span" face="Menlo">        ^</font></div><div><font class="Apple-style-span" face="Menlo">../include/ratio:193:26: note: initializer of 'nan' is not a constant expression</font></div><div><font class="Apple-style-span" face="Menlo">    static_assert(_Xp != nan && _Yp != nan && __a_x <= max / __a_y, "overflow in __ll_mul");</font></div><div><font class="Apple-style-span" face="Menlo">                         ^</font></div><div><font class="Apple-style-span" face="Menlo">../include/ratio:187:27: note: declared here</font></div><div><font class="Apple-style-span" face="Menlo">    static const intmax_t nan = (1LL << (sizeof(intmax_t) * CHAR_BIT - 1));</font></div><div><font class="Apple-style-span" face="Menlo">                          ^</font></div><div><font class="Apple-style-span" face="Menlo">../include/ratio:187:27: note: declared here</font></div><div><font class="Apple-style-span" face="Menlo">../include/ratio:189:27: note: declared here</font></div><div><font class="Apple-style-span" face="Menlo">    static const intmax_t max = -min;</font></div></div><div><br><div apple-content-edited="true">
<div>-- Jean-Daniel</div><div><br></div><div><br></div><br class="Apple-interchange-newline">
</div>
<br></div></body></html>