From 1bc7a28f9424f4abe021f1831c8f07c0f8f62b3f Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Wed, 22 Aug 2018 23:54:33 +0100 Subject: PR libstdc++/87061 remove pmr type aliases for COW strings The pmr aliases for basic_string and match_results are incompatible with the gcc4-compatible ABI because the Copy-On-Write basic_string class doesn't support C++11 allocators. PR libstdc++/87061 * include/experimental/regex [!_GLIBCXX_USE_CXX11_ABI] (experimental::pmr::match_results, experimental::pmr::cmatch) (experimental::pmr::smatch, experimental::pmr::wcmatch) (experimental::pmr::wsmatch): Do not declare for gcc4-compatible ABI, because COW strings don't support C++11 allocator model. * include/experimental/string [!_GLIBCXX_USE_CXX11_ABI] (experimental::pmr::basic_string, experimental::pmr::string) (experimental::pmr::u16string, experimental::pmr::u32string) (experimental::pmr::wstring): Likewise. * include/std/regex [!_GLIBCXX_USE_CXX11_ABI] (pmr::match_results) (pmr::cmatch, pmr::smatch, pmr::wcmatch, pmr::wsmatch): Likewise. * include/std/string [!_GLIBCXX_USE_CXX11_ABI] (pmr::basic_string) (pmr::string, pmr::u16string, pmr::u32string, pmr::wstring): Likewise. * testsuite/21_strings/basic_string/types/pmr_typedefs.cc: Require cxx11-abi. * testsuite/28_regex/match_results/pmr_typedefs.cc: Likewise. From-SVN: r263791 --- libstdc++-v3/include/experimental/regex | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'libstdc++-v3/include/experimental/regex') diff --git a/libstdc++-v3/include/experimental/regex b/libstdc++-v3/include/experimental/regex index eb2af15..633b396 100644 --- a/libstdc++-v3/include/experimental/regex +++ b/libstdc++-v3/include/experimental/regex @@ -44,6 +44,7 @@ namespace experimental { inline namespace fundamentals_v2 { +#if _GLIBCXX_USE_CXX11_ABI namespace pmr { template @@ -57,7 +58,7 @@ namespace pmr typedef match_results wsmatch; } // namespace pmr - +#endif } // namespace fundamentals_v2 } // namespace experimental _GLIBCXX_END_NAMESPACE_VERSION -- cgit v1.1