Index: test/std/re/re.results/re.results.all/get_allocator.pass.cpp =================================================================== --- test/std/re/re.results/re.results.all/get_allocator.pass.cpp +++ test/std/re/re.results/re.results.all/get_allocator.pass.cpp @@ -24,7 +24,7 @@ { std::match_results m(a); assert(m.size() == 0); - assert(m.str() == std::basic_string()); + assert(!m.ready() || m.str() == std::basic_string()); assert(m.get_allocator() == a); } Index: test/std/re/re.results/re.results.const/allocator.pass.cpp =================================================================== --- test/std/re/re.results/re.results.const/allocator.pass.cpp +++ test/std/re/re.results/re.results.const/allocator.pass.cpp @@ -24,7 +24,7 @@ { std::match_results m(a); assert(m.size() == 0); - assert(m.str() == std::basic_string()); + assert(!m.ready() || m.str() == std::basic_string()); assert(m.get_allocator() == a); } Index: test/std/re/re.results/re.results.const/copy.pass.cpp =================================================================== --- test/std/re/re.results/re.results.const/copy.pass.cpp +++ test/std/re/re.results/re.results.const/copy.pass.cpp @@ -25,8 +25,8 @@ SM m0(a); SM m1(m0); - assert(m1.size() == m0.size()); - assert(m1.str() == m0.str()); + assert(m1.size() == m0.size()); + assert(!m1.ready() || !m0.ready() || m1.str() == m0.str()); assert(m1.get_allocator() == m0.get_allocator()); } Index: test/std/re/re.results/re.results.const/copy_assign.pass.cpp =================================================================== --- test/std/re/re.results/re.results.const/copy_assign.pass.cpp +++ test/std/re/re.results/re.results.const/copy_assign.pass.cpp @@ -26,8 +26,8 @@ SM m1; m1 = m0; - assert(m1.size() == m0.size()); - assert(m1.str() == m0.str()); + assert(m1.size() == m0.size()); + assert(!m1.ready() || !m0.ready() || m1.str() == m0.str()); if (std::allocator_traits::propagate_on_container_copy_assignment::value) assert(m1.get_allocator() == m0.get_allocator()); else Index: test/std/re/re.results/re.results.const/default.pass.cpp =================================================================== --- test/std/re/re.results/re.results.const/default.pass.cpp +++ test/std/re/re.results/re.results.const/default.pass.cpp @@ -22,7 +22,7 @@ { std::match_results m; assert(m.size() == 0); - assert(m.str() == std::basic_string()); + assert(!m.ready() || m.str() == std::basic_string()); assert(m.get_allocator() == std::allocator >()); } Index: test/std/re/re.results/re.results.const/move.pass.cpp =================================================================== --- test/std/re/re.results/re.results.const/move.pass.cpp +++ test/std/re/re.results/re.results.const/move.pass.cpp @@ -31,7 +31,7 @@ SM m1(std::move(m0)); assert(m1.size() == 0); - assert(m1.str() == std::basic_string()); + assert(!m1.ready() || m1.str() == std::basic_string()); assert(m1.get_allocator() == a); } Index: test/std/re/re.results/re.results.const/move_assign.pass.cpp =================================================================== --- test/std/re/re.results/re.results.const/move_assign.pass.cpp +++ test/std/re/re.results/re.results.const/move_assign.pass.cpp @@ -27,8 +27,8 @@ SM m1; m1 = std::move(m0); - assert(m1.size() == 0); - assert(m1.str() == std::basic_string()); + assert(m1.size() == 0); + assert(!m1.ready() || m1.str() == std::basic_string()); if (std::allocator_traits::propagate_on_container_move_assignment::value) assert(m1.get_allocator() == a); else