Bug 87061 - [9 Regression] regex cannot be compiled with -std=c++1z -D_GLIBCXX_USE_CXX11_ABI=0
Summary: [9 Regression] regex cannot be compiled with -std=c++1z -D_GLIBCXX_USE_CXX11_...
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: libstdc++ (show other bugs)
Version: 9.0
: P3 normal
Target Milestone: 9.0
Assignee: Jonathan Wakely
URL:
Keywords: rejects-valid
Depends on:
Blocks:
 
Reported: 2018-08-22 17:19 UTC by Volker Reichelt
Modified: 2018-10-12 13:05 UTC (History)
0 users

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2018-08-22 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Volker Reichelt 2018-08-22 17:19:48 UTC
Using the regex header (like in the code snippet below) with the the options
"-std=c++1z -D_GLIBCXX_USE_CXX11_ABI=0" results in an error message.

This is a regression introduced between 2018-07-26 and 2018-08-17.

===================================
#include <regex>
===================================

In file included from /gcc-9/include/c++/9.0.0/string:52,
                 from /gcc-9/include/c++/9.0.0/bitset:47,
                 from /gcc-9/include/c++/9.0.0/regex:39,
                 from bug.cc:1:
/gcc-9/include/c++/9.0.0/bits/basic_string.h: In instantiation of 'class std::basic_string<char, std::char_traits<char>, std::pmr::polymorphic_allocator<char> >':
/gcc-9/include/c++/9.0.0/regex:77:41:   required from here
/gcc-9/include/c++/9.0.0/bits/basic_string.h:3103:63: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<char>'
3103 |       typedef typename _Alloc::template rebind<_CharT>::other _CharT_alloc_type;
     |                                                               ^~~~~~~~~~~~~~~~~
/gcc-9/include/c++/9.0.0/bits/basic_string.h:3116:68: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<char>'
3116 |       typedef __gnu_cxx::__normal_iterator<pointer, basic_string>  iterator;
     |                                                                    ^~~~~~~~
/gcc-9/include/c++/9.0.0/bits/basic_string.h:3118:61: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<char>'
3118 |                                                             const_iterator;
     |                                                             ^~~~~~~~~~~~~~
/gcc-9/include/c++/9.0.0/bits/basic_string.h:3119:53: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<char>'
3119 |       typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
     |                                                     ^~~~~~~~~~~~~~~~~~~~~~
/gcc-9/include/c++/9.0.0/bits/basic_string.h:3120:52: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<char>'
3120 |       typedef std::reverse_iterator<iterator>      reverse_iterator;
     |                                                    ^~~~~~~~~~~~~~~~
/gcc-9/include/c++/9.0.0/bits/basic_string.h:5233:2: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<char>'
5233 |  find(const _Tp& __svt, size_type __pos = 0) const
     |  ^~~~
/gcc-9/include/c++/9.0.0/bits/basic_string.h:5311:2: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<char>'
5311 |  rfind(const _Tp& __svt, size_type __pos = npos) const
     |  ^~~~~
/gcc-9/include/c++/9.0.0/bits/basic_string.h:5395:2: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<char>'
5395 |  find_first_of(const _Tp& __svt, size_type __pos = 0) const
     |  ^~~~~~~~~~~~~
/gcc-9/include/c++/9.0.0/bits/basic_string.h:5479:2: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<char>'
5479 |  find_last_of(const _Tp& __svt, size_type __pos = npos) const
     |  ^~~~~~~~~~~~
/gcc-9/include/c++/9.0.0/bits/basic_string.h:5560:2: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<char>'
5560 |  find_first_not_of(const _Tp& __svt, size_type __pos = 0) const
     |  ^~~~~~~~~~~~~~~~~
/gcc-9/include/c++/9.0.0/bits/basic_string.h:5642:2: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<char>'
5642 |  find_last_not_of(const _Tp& __svt, size_type __pos = npos) const
     |  ^~~~~~~~~~~~~~~~
In file included from bug.cc:3:
/gcc-9/include/c++/9.0.0/regex:77:57: error: template argument 1 is invalid
77 |     using smatch  = match_results<string::const_iterator>;
   |                                                         ^
In file included from /gcc-9/include/c++/9.0.0/string:52,
                 from /gcc-9/include/c++/9.0.0/bitset:47,
                 from /gcc-9/include/c++/9.0.0/regex:39,
                 from bug.cc:1:
/gcc-9/include/c++/9.0.0/bits/basic_string.h: In instantiation of 'class std::basic_string<wchar_t, std::char_traits<wchar_t>, std::pmr::polymorphic_allocator<wchar_t> >':
/gcc-9/include/c++/9.0.0/regex:80:42:   required from here
/gcc-9/include/c++/9.0.0/bits/basic_string.h:3103:63: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<wchar_t>'
3103 |       typedef typename _Alloc::template rebind<_CharT>::other _CharT_alloc_type;
     |                                                               ^~~~~~~~~~~~~~~~~
/gcc-9/include/c++/9.0.0/bits/basic_string.h:3116:68: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<wchar_t>'
3116 |       typedef __gnu_cxx::__normal_iterator<pointer, basic_string>  iterator;
     |                                                                    ^~~~~~~~
/gcc-9/include/c++/9.0.0/bits/basic_string.h:3118:61: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<wchar_t>'
3118 |                                                             const_iterator;
     |                                                             ^~~~~~~~~~~~~~
/gcc-9/include/c++/9.0.0/bits/basic_string.h:3119:53: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<wchar_t>'
3119 |       typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
     |                                                     ^~~~~~~~~~~~~~~~~~~~~~
/gcc-9/include/c++/9.0.0/bits/basic_string.h:3120:52: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<wchar_t>'
3120 |       typedef std::reverse_iterator<iterator>      reverse_iterator;
     |                                                    ^~~~~~~~~~~~~~~~
/gcc-9/include/c++/9.0.0/bits/basic_string.h:5233:2: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<wchar_t>'
5233 |  find(const _Tp& __svt, size_type __pos = 0) const
     |  ^~~~
/gcc-9/include/c++/9.0.0/bits/basic_string.h:5311:2: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<wchar_t>'
5311 |  rfind(const _Tp& __svt, size_type __pos = npos) const
     |  ^~~~~
/gcc-9/include/c++/9.0.0/bits/basic_string.h:5395:2: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<wchar_t>'
5395 |  find_first_of(const _Tp& __svt, size_type __pos = 0) const
     |  ^~~~~~~~~~~~~
/gcc-9/include/c++/9.0.0/bits/basic_string.h:5479:2: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<wchar_t>'
5479 |  find_last_of(const _Tp& __svt, size_type __pos = npos) const
     |  ^~~~~~~~~~~~
/gcc-9/include/c++/9.0.0/bits/basic_string.h:5560:2: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<wchar_t>'
5560 |  find_first_not_of(const _Tp& __svt, size_type __pos = 0) const
     |  ^~~~~~~~~~~~~~~~~
/gcc-9/include/c++/9.0.0/bits/basic_string.h:5642:2: error: no class template named 'rebind' in 'class std::pmr::polymorphic_allocator<wchar_t>'
5642 |  find_last_not_of(const _Tp& __svt, size_type __pos = npos) const
     |  ^~~~~~~~~~~~~~~~
In file included from bug.cc:3:
/gcc-9/include/c++/9.0.0/regex:80:58: error: template argument 1 is invalid
80 |     using wsmatch = match_results<wstring::const_iterator>;
   |                                                          ^
Comment 1 Jonathan Wakely 2018-08-22 18:51:11 UTC
Those std::pmr type aliases should only be defined for the new ABI, because the old std::string doesn't support C++11 allocators.
Comment 2 Jonathan Wakely 2018-08-22 22:54:43 UTC
Fixed.
Comment 3 Jonathan Wakely 2018-08-22 22:55:07 UTC
Author: redi
Date: Wed Aug 22 22:54:33 2018
New Revision: 263791

URL: https://gcc.gnu.org/viewcvs?rev=263791&root=gcc&view=rev
Log:
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.

Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/experimental/regex
    trunk/libstdc++-v3/include/experimental/string
    trunk/libstdc++-v3/include/std/regex
    trunk/libstdc++-v3/include/std/string
    trunk/libstdc++-v3/testsuite/21_strings/basic_string/types/pmr_typedefs.cc
    trunk/libstdc++-v3/testsuite/28_regex/match_results/pmr_typedefs.cc
Comment 4 Jonathan Wakely 2018-10-12 12:29:12 UTC
Author: redi
Date: Fri Oct 12 12:28:36 2018
New Revision: 265086

URL: https://gcc.gnu.org/viewcvs?rev=265086&root=gcc&view=rev
Log:
Fix experimental::pmr typedefs and add tests

The typedefs in <experimental/regex> and <experimental/string> don't
need to be in the __cxx11 namespace, because they are only aliases and
so will have the same mangled name as the underlying types.

Backport from mainline
2018-08-23  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/21_strings/basic_string/init-list.cc:
	Require cxx11-abi.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
	Likewise.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
	Likewise.

Backport from mainline
2018-08-22  Jonathan Wakely  <jwakely@redhat.com>

	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.

Backport from mainline
2018-08-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/experimental/regex: Remove begin/end macros for namespace.
	* include/experimental/string: Likewise.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc:
	New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_forward_list.cc: New test.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc:
	New test.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc:
	New test.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
	New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_multimap.cc: New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_multiset.cc: New test.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc:
	New test.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
	New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_unordered_map.cc: New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_unordered_multimap.cc: New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_unordered_multiset.cc: New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_unordered_set.cc: New test.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc:
	New test.

Added:
    branches/gcc-8-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/
    branches/gcc-8-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc
    branches/gcc-8-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_forward_list.cc
    branches/gcc-8-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc
    branches/gcc-8-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc
    branches/gcc-8-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc
    branches/gcc-8-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_multimap.cc
    branches/gcc-8-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_multiset.cc
    branches/gcc-8-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc
    branches/gcc-8-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc
    branches/gcc-8-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_map.cc
    branches/gcc-8-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_multimap.cc
    branches/gcc-8-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_multiset.cc
    branches/gcc-8-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_set.cc
    branches/gcc-8-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc
Modified:
    branches/gcc-8-branch/libstdc++-v3/ChangeLog
    branches/gcc-8-branch/libstdc++-v3/include/experimental/regex
    branches/gcc-8-branch/libstdc++-v3/include/experimental/string
    branches/gcc-8-branch/libstdc++-v3/testsuite/21_strings/basic_string/init-list.cc
Comment 5 Jonathan Wakely 2018-10-12 12:52:02 UTC
Author: redi
Date: Fri Oct 12 12:51:29 2018
New Revision: 265093

URL: https://gcc.gnu.org/viewcvs?rev=265093&root=gcc&view=rev
Log:
Fix experimental::pmr typedefs and add tests

The typedefs in <experimental/regex> and <experimental/string> don't
need to be in the __cxx11 namespace, because they are only aliases and
so will have the same mangled name as the underlying types.

Backport from mainline
2018-08-23  Jonathan Wakely  <jwakely@redhat.com>

	* testsuite/21_strings/basic_string/init-list.cc:
	Require cxx11-abi.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
	Likewise.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
	Likewise.

Backport from mainline
2018-08-22  Jonathan Wakely  <jwakely@redhat.com>

	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.

Backport from mainline
2018-08-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/experimental/regex: Remove begin/end macros for namespace.
	* include/experimental/string: Likewise.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc:
	New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_forward_list.cc: New test.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc:
	New test.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc:
	New test.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
	New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_multimap.cc: New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_multiset.cc: New test.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc:
	New test.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
	New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_unordered_map.cc: New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_unordered_multimap.cc: New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_unordered_multiset.cc: New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_unordered_set.cc: New test.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc:
	New test.

Added:
    branches/gcc-7-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/
    branches/gcc-7-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc
    branches/gcc-7-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_forward_list.cc
    branches/gcc-7-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc
    branches/gcc-7-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc
    branches/gcc-7-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc
    branches/gcc-7-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_multimap.cc
    branches/gcc-7-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_multiset.cc
    branches/gcc-7-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc
    branches/gcc-7-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc
    branches/gcc-7-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_map.cc
    branches/gcc-7-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_multimap.cc
    branches/gcc-7-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_multiset.cc
    branches/gcc-7-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_set.cc
    branches/gcc-7-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc
Modified:
    branches/gcc-7-branch/libstdc++-v3/ChangeLog
    branches/gcc-7-branch/libstdc++-v3/include/experimental/regex
    branches/gcc-7-branch/libstdc++-v3/include/experimental/string
    branches/gcc-7-branch/libstdc++-v3/testsuite/21_strings/basic_string/init-list.cc
Comment 6 Jonathan Wakely 2018-10-12 13:05:10 UTC
Author: redi
Date: Fri Oct 12 13:04:38 2018
New Revision: 265098

URL: https://gcc.gnu.org/viewcvs?rev=265098&root=gcc&view=rev
Log:
Fix experimental::pmr typedefs and add tests

The typedefs in <experimental/regex> and <experimental/string> don't
need to be in the __cxx11 namespace, because they are only aliases and
so will have the same mangled name as the underlying types.

Backport from mainline
2018-08-22  Jonathan Wakely  <jwakely@redhat.com>

	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.

Backport from mainline
2018-08-15  Jonathan Wakely  <jwakely@redhat.com>

	* include/experimental/regex: Remove begin/end macros for namespace.
	* include/experimental/string: Likewise.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc:
	New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_forward_list.cc: New test.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc:
	New test.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc:
	New test.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc:
	New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_multimap.cc: New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_multiset.cc: New test.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc:
	New test.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc:
	New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_unordered_map.cc: New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_unordered_multimap.cc: New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_unordered_multiset.cc: New test.
	* testsuite/experimental/polymorphic_allocator/
	pmr_typedefs_unordered_set.cc: New test.
	* testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc:
	New test.

Added:
    branches/gcc-6-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/
    branches/gcc-6-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_deque.cc
    branches/gcc-6-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_forward_list.cc
    branches/gcc-6-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_list.cc
    branches/gcc-6-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_map.cc
    branches/gcc-6-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_match.cc
    branches/gcc-6-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_multimap.cc
    branches/gcc-6-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_multiset.cc
    branches/gcc-6-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_set.cc
    branches/gcc-6-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_string.cc
    branches/gcc-6-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_map.cc
    branches/gcc-6-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_multimap.cc
    branches/gcc-6-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_multiset.cc
    branches/gcc-6-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_unordered_set.cc
    branches/gcc-6-branch/libstdc++-v3/testsuite/experimental/polymorphic_allocator/pmr_typedefs_vector.cc
Modified:
    branches/gcc-6-branch/libstdc++-v3/ChangeLog
    branches/gcc-6-branch/libstdc++-v3/include/experimental/regex
    branches/gcc-6-branch/libstdc++-v3/include/experimental/string