<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">It looks like this commit and r299735 are causing bots to fail:</div><div class=""><br class=""></div><div class=""><a href="http://green.lab.llvm.org/green/job/libcxx_master_cmake_32/66/" class="">http://green.lab.llvm.org/green/job/libcxx_master_cmake_32/66/</a></div><div class=""><br class=""></div><div class="">The test hash_unique_ptr.pass.cpp doesn’t compile when -std=c++03 is on the command line because PointerDeleter defined in deleter_types.h is guarded with "TEST_STD_VER >= 11”.</div><br class=""><div><blockquote type="cite" class=""><div class="">On Apr 6, 2017, at 4:50 PM, Billy Robert O'Neal III via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org" class="">cfe-commits@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Author: bion<br class="">Date: Thu Apr  6 18:50:21 2017<br class="">New Revision: 299734<br class=""><br class="">URL: <a href="http://llvm.org/viewvc/llvm-project?rev=299734&view=rev" class="">http://llvm.org/viewvc/llvm-project?rev=299734&view=rev</a><br class="">Log:<br class="">Allow a standard library to implement conditional noexcept for optional and unique_ptr hash functions.<br class=""><br class="">These tests were unconditionally asserting that optional and unique_ptr declare throwing hashes, but MSVC++ implements conditional noexcept forwarding that of the underlying hash function. As a result we were failing these tests but there's nothing forbidding strengthening noexcept in that way.<br class=""><br class="">Changed the ASSERT_NOT_NOEXCEPT asserts to use types which themselves have non-noexcept hash functions.<br class=""><br class="">Modified:<br class="">    libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp<br class="">    libcxx/trunk/test/std/utilities/optional/optional.hash/hash.pass.cpp<br class=""><br class="">Modified: libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp?rev=299734&r1=299733&r2=299734&view=diff" class="">http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp?rev=299734&r1=299733&r2=299734&view=diff</a><br class="">==============================================================================<br class="">--- libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp (original)<br class="">+++ libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp Thu Apr  6 18:50:21 2017<br class="">@@ -67,10 +67,14 @@ int main()<br class="">     int* ptr = new int;<br class="">     std::unique_ptr<int> p(ptr);<br class="">     std::hash<std::unique_ptr<int> > f;<br class="">-    ASSERT_NOT_NOEXCEPT(f(p));<br class="">     std::size_t h = f(p);<br class="">     assert(h == std::hash<int*>()(ptr));<br class="">   }<br class="">+  {<br class="">+    std::unique_ptr<int, PointerDeleter<int, 1>> pThrowingHash;<br class="">+    std::hash<std::unique_ptr<int, PointerDeleter<int, 1>>> fThrowingHash;<br class="">+    ASSERT_NOT_NOEXCEPT(fThrowingHash(pThrowingHash));<br class="">+  }<br class=""> #if TEST_STD_VER >= 11<br class="">   {<br class="">     test_enabled_with_deleter<int, Deleter<int>>();<br class=""><br class="">Modified: libcxx/trunk/test/std/utilities/optional/optional.hash/hash.pass.cpp<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.hash/hash.pass.cpp?rev=299734&r1=299733&r2=299734&view=diff" class="">http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/optional/optional.hash/hash.pass.cpp?rev=299734&r1=299733&r2=299734&view=diff</a><br class="">==============================================================================<br class="">--- libcxx/trunk/test/std/utilities/optional/optional.hash/hash.pass.cpp (original)<br class="">+++ libcxx/trunk/test/std/utilities/optional/optional.hash/hash.pass.cpp Thu Apr  6 18:50:21 2017<br class="">@@ -38,9 +38,14 @@ int main()<br class="">         std::hash<optional<double>>{}(optional<double>{});<br class=""><br class="">     {<br class="">+        optional<B> opt;<br class="">+        ASSERT_NOT_NOEXCEPT(std::hash<optional<B>>()(opt));<br class="">+        ASSERT_NOT_NOEXCEPT(std::hash<optional<const B>>()(opt));<br class="">+    }<br class="">+<br class="">+    {<br class="">         typedef int T;<br class="">         optional<T> opt;<br class="">-        ASSERT_NOT_NOEXCEPT(std::hash<optional<T>>()(opt));<br class="">         assert(std::hash<optional<T>>{}(opt) == nullopt_hash);<br class="">         opt = 2;<br class="">         assert(std::hash<optional<T>>{}(opt) == std::hash<T>{}(*opt));<br class="">@@ -48,7 +53,6 @@ int main()<br class="">     {<br class="">         typedef std::string T;<br class="">         optional<T> opt;<br class="">-        ASSERT_NOT_NOEXCEPT(std::hash<optional<T>>()(opt));<br class="">         assert(std::hash<optional<T>>{}(opt) == nullopt_hash);<br class="">         opt = std::string("123");<br class="">         assert(std::hash<optional<T>>{}(opt) == std::hash<T>{}(*opt));<br class="">@@ -56,7 +60,6 @@ int main()<br class="">     {<br class="">         typedef std::unique_ptr<int> T;<br class="">         optional<T> opt;<br class="">-        ASSERT_NOT_NOEXCEPT(std::hash<optional<T>>()(opt));<br class="">         assert(std::hash<optional<T>>{}(opt) == nullopt_hash);<br class="">         opt = std::unique_ptr<int>(new int(3));<br class="">         assert(std::hash<optional<T>>{}(opt) == std::hash<T>{}(*opt));<br class=""><br class=""><br class="">_______________________________________________<br class="">cfe-commits mailing list<br class=""><a href="mailto:cfe-commits@lists.llvm.org" class="">cfe-commits@lists.llvm.org</a><br class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits<br class=""></div></div></blockquote></div><br class=""></body></html>