<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="">I reverted r299734 in r299744. Feel free to recommit it once the test is fixed.<div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Apr 6, 2017, at 10:36 PM, Akira Hatanaka 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=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div 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 class=""><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=""><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br class=""></div></div></blockquote></div><br class=""></div>_______________________________________________<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></blockquote></div><br class=""></div></body></html>