Author: marshall Date: Thu Jul 21 01:24:04 2016 New Revision: 276241 URL: http://llvm.org/viewvc/llvm-project?rev=276241&view=rev Log: Fix some string_view tests that were failing when exceptions were disabled. Also comment out a _LIBCPP_ASSERT that gcc4.9 was complaining about. Will revisit that later.
Modified: libcxx/trunk/include/string_view libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp libcxx/trunk/test/std/strings/string.view/string.view.ops/substr.pass.cpp Modified: libcxx/trunk/include/string_view URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/string_view?rev=276241&r1=276240&r2=276241&view=diff ============================================================================== --- libcxx/trunk/include/string_view (original) +++ libcxx/trunk/include/string_view Thu Jul 21 01:24:04 2016 @@ -206,9 +206,9 @@ public: basic_string_view(const _CharT* __s, size_type __len) : __data(__s), __size(__len) { -#if _LIBCPP_STD_VER > 11 - _LIBCPP_ASSERT(__len == 0 || __s != nullptr, "string_view::string_view(_CharT *, size_t): received nullptr"); -#endif +// #if _LIBCPP_STD_VER > 11 +// _LIBCPP_ASSERT(__len == 0 || __s != nullptr, "string_view::string_view(_CharT *, size_t): received nullptr"); +// #endif } _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY Modified: libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp?rev=276241&r1=276240&r2=276241&view=diff ============================================================================== --- libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp (original) +++ libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.pointer_size.pass.cpp Thu Jul 21 01:24:04 2016 @@ -22,6 +22,10 @@ int sign ( int x ) { return x > 0 ? 1 : template<typename CharT> void test1 ( std::basic_string_view<CharT> sv1, size_t pos1, size_t n1, const CharT *s, int expected ) { +#ifdef TEST_HAS_NO_EXCEPTIONS + if (pos1 <= sv1.size()) + assert(sign(sv1.compare(pos1, n1, s)) == sign(expected)); +#else try { assert(sign(sv1.compare(pos1, n1, s)) == sign(expected)); assert(pos1 <= sv1.size()); @@ -29,6 +33,7 @@ void test1 ( std::basic_string_view<Char catch (const std::out_of_range&) { assert(pos1 > sv1.size()); } +#endif } template<typename CharT> Modified: libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp?rev=276241&r1=276240&r2=276241&view=diff ============================================================================== --- libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp (original) +++ libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv.pass.cpp Thu Jul 21 01:24:04 2016 @@ -22,6 +22,10 @@ int sign ( int x ) { return x > 0 ? 1 : template<typename CharT> void test1 ( std::basic_string_view<CharT> sv1, size_t pos1, size_t n1, std::basic_string_view<CharT> sv2, int expected ) { +#ifdef TEST_HAS_NO_EXCEPTIONS + if (pos1 <= sv1.size()) + assert(sign( sv1.compare(pos1, n1, sv2)) == sign(expected)); +#else try { assert(sign( sv1.compare(pos1, n1, sv2)) == sign(expected)); assert(pos1 <= sv1.size()); @@ -29,6 +33,7 @@ void test1 ( std::basic_string_view<Char catch (const std::out_of_range&) { assert(pos1 > sv1.size()); } +#endif } Modified: libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp?rev=276241&r1=276240&r2=276241&view=diff ============================================================================== --- libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp (original) +++ libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv_pointer_size.pass.cpp Thu Jul 21 01:24:04 2016 @@ -23,6 +23,10 @@ int sign ( int x ) { return x > 0 ? 1 : template<typename CharT> void test1 ( std::basic_string_view<CharT> sv1, size_t pos1, size_t n1, const CharT *s2, size_t n2, int expected ) { +#ifdef TEST_HAS_NO_EXCEPTIONS + if (pos1 <= sv1.size()) + assert(sign(sv1.compare(pos1, n1, s2, n2)) == sign(expected)); +#else try { assert(sign(sv1.compare(pos1, n1, s2, n2)) == sign(expected)); assert(pos1 <= sv1.size()); @@ -30,6 +34,7 @@ void test1 ( std::basic_string_view<Char catch (const std::out_of_range&) { assert(pos1 > sv1.size()); } +#endif } Modified: libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp?rev=276241&r1=276240&r2=276241&view=diff ============================================================================== --- libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp (original) +++ libcxx/trunk/test/std/strings/string.view/string.view.ops/compare.size_size_sv_size_size.pass.cpp Thu Jul 21 01:24:04 2016 @@ -24,6 +24,10 @@ template<typename CharT> void test1 ( std::basic_string_view<CharT> sv1, size_t pos1, size_t n1, std::basic_string_view<CharT> sv2, size_t pos2, size_t n2, int expected ) { +#ifdef TEST_HAS_NO_EXCEPTIONS + if (pos1 <= sv1.size() && pos2 <= sv2.size()) + assert (sign( sv1.compare(pos1, n1, sv2, pos2, n2)) == sign(expected)); +#else try { assert (sign( sv1.compare(pos1, n1, sv2, pos2, n2)) == sign(expected)); assert(pos1 <= sv1.size() && pos2 <= sv2.size()); @@ -31,6 +35,7 @@ void test1 ( std::basic_string_view<Char catch (const std::out_of_range&) { assert(pos1 > sv1.size() || pos2 > sv2.size()); } +#endif } Modified: libcxx/trunk/test/std/strings/string.view/string.view.ops/substr.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/strings/string.view/string.view.ops/substr.pass.cpp?rev=276241&r1=276240&r2=276241&view=diff ============================================================================== --- libcxx/trunk/test/std/strings/string.view/string.view.ops/substr.pass.cpp (original) +++ libcxx/trunk/test/std/strings/string.view/string.view.ops/substr.pass.cpp Thu Jul 21 01:24:04 2016 @@ -22,16 +22,21 @@ template<typename CharT> void test1(std::basic_string_view<CharT> sv, size_t n, size_t pos) { - try { - std::basic_string_view<CharT> sv1 = sv.substr(pos, n); +#ifdef TEST_HAS_NO_EXCEPTIONS + if (pos <= sv.size()) + assert (sign( sv1.compare(pos1, n1, sv2)) == sign(expected)); +#else + try { + std::basic_string_view<CharT> sv1 = sv.substr(pos, n); const size_t rlen = std::min(n, sv.size() - pos); assert (sv1.size() == rlen); for (size_t i = 0; i <= rlen; ++i) assert(sv[pos+i] == sv1[i]); - } - catch (const std::out_of_range&) { - assert(pos > sv.size()); - } + } + catch (const std::out_of_range&) { + assert(pos > sv.size()); + } +#endif } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits