I reverted r299734 in r299744. Feel free to recommit it once the test is fixed.
> On Apr 6, 2017, at 10:36 PM, Akira Hatanaka via cfe-commits > <cfe-commits@lists.llvm.org> wrote: > > It looks like this commit and r299735 are causing bots to fail: > > http://green.lab.llvm.org/green/job/libcxx_master_cmake_32/66/ > <http://green.lab.llvm.org/green/job/libcxx_master_cmake_32/66/> > > 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”. > >> On Apr 6, 2017, at 4:50 PM, Billy Robert O'Neal III via cfe-commits >> <cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org>> wrote: >> >> Author: bion >> Date: Thu Apr 6 18:50:21 2017 >> New Revision: 299734 >> >> URL: http://llvm.org/viewvc/llvm-project?rev=299734&view=rev >> <http://llvm.org/viewvc/llvm-project?rev=299734&view=rev> >> Log: >> Allow a standard library to implement conditional noexcept for optional and >> unique_ptr hash functions. >> >> 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. >> >> Changed the ASSERT_NOT_NOEXCEPT asserts to use types which themselves have >> non-noexcept hash functions. >> >> Modified: >> >> libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp >> libcxx/trunk/test/std/utilities/optional/optional.hash/hash.pass.cpp >> >> Modified: >> libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp >> URL: >> 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 >> >> <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> >> ============================================================================== >> --- >> libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp >> (original) >> +++ >> libcxx/trunk/test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp >> Thu Apr 6 18:50:21 2017 >> @@ -67,10 +67,14 @@ int main() >> int* ptr = new int; >> std::unique_ptr<int> p(ptr); >> std::hash<std::unique_ptr<int> > f; >> - ASSERT_NOT_NOEXCEPT(f(p)); >> std::size_t h = f(p); >> assert(h == std::hash<int*>()(ptr)); >> } >> + { >> + std::unique_ptr<int, PointerDeleter<int, 1>> pThrowingHash; >> + std::hash<std::unique_ptr<int, PointerDeleter<int, 1>>> fThrowingHash; >> + ASSERT_NOT_NOEXCEPT(fThrowingHash(pThrowingHash)); >> + } >> #if TEST_STD_VER >= 11 >> { >> test_enabled_with_deleter<int, Deleter<int>>(); >> >> Modified: >> libcxx/trunk/test/std/utilities/optional/optional.hash/hash.pass.cpp >> URL: >> 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 >> >> <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> >> ============================================================================== >> --- libcxx/trunk/test/std/utilities/optional/optional.hash/hash.pass.cpp >> (original) >> +++ libcxx/trunk/test/std/utilities/optional/optional.hash/hash.pass.cpp Thu >> Apr 6 18:50:21 2017 >> @@ -38,9 +38,14 @@ int main() >> std::hash<optional<double>>{}(optional<double>{}); >> >> { >> + optional<B> opt; >> + ASSERT_NOT_NOEXCEPT(std::hash<optional<B>>()(opt)); >> + ASSERT_NOT_NOEXCEPT(std::hash<optional<const B>>()(opt)); >> + } >> + >> + { >> typedef int T; >> optional<T> opt; >> - ASSERT_NOT_NOEXCEPT(std::hash<optional<T>>()(opt)); >> assert(std::hash<optional<T>>{}(opt) == nullopt_hash); >> opt = 2; >> assert(std::hash<optional<T>>{}(opt) == std::hash<T>{}(*opt)); >> @@ -48,7 +53,6 @@ int main() >> { >> typedef std::string T; >> optional<T> opt; >> - ASSERT_NOT_NOEXCEPT(std::hash<optional<T>>()(opt)); >> assert(std::hash<optional<T>>{}(opt) == nullopt_hash); >> opt = std::string("123"); >> assert(std::hash<optional<T>>{}(opt) == std::hash<T>{}(*opt)); >> @@ -56,7 +60,6 @@ int main() >> { >> typedef std::unique_ptr<int> T; >> optional<T> opt; >> - ASSERT_NOT_NOEXCEPT(std::hash<optional<T>>()(opt)); >> assert(std::hash<optional<T>>{}(opt) == nullopt_hash); >> opt = std::unique_ptr<int>(new int(3)); >> assert(std::hash<optional<T>>{}(opt) == std::hash<T>{}(*opt)); >> >> >> _______________________________________________ >> cfe-commits mailing list >> cfe-commits@lists.llvm.org <mailto:cfe-commits@lists.llvm.org> >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits > > _______________________________________________ > cfe-commits mailing list > cfe-commits@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits