diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2018-08-24 18:43:18 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2018-08-24 18:43:18 +0100 |
commit | 9ca2ac699ab2eee4ef6a2904426fa38f58af5a0b (patch) | |
tree | 249a4e4031c0f5bb629ba4f9e37eb943d1b6bd78 /libstdc++-v3 | |
parent | 3413d168824e022555c8246095dfdea297b4c4cc (diff) | |
download | gcc-9ca2ac699ab2eee4ef6a2904426fa38f58af5a0b.zip gcc-9ca2ac699ab2eee4ef6a2904426fa38f58af5a0b.tar.gz gcc-9ca2ac699ab2eee4ef6a2904426fa38f58af5a0b.tar.bz2 |
Forward declare debug containers so std::pmr aliases work
Prior to this change, including a <debug/xxx> header when _GLIBCXX_DEBUG
is also defined would fail to compile in C++17 or later. The <debug/xxx>
header would include the standard <xxx> header which defined
std::pmr::xxx as an alias for std::xxx. But in Debug Mode std::xxx
refers to std::__debug::xxx which has not been defined yet (because it
is in <debug/xxx> after the inclusion of <xxx>).
This adds declarations of the debug containers before including the
non-Debug Mode <xxx> header, so that the std::pmr::xxx aliases work.
* include/debug/deque (std::__debug::deque): Declare.
* include/debug/forward_list (std::__debug::forward_list): Declare.
* include/debug/list (std::__debug::list): Declare.
* include/debug/map (std::__debug::map): Declare.
* include/debug/set (std::__debug::set): Declare.
* include/debug/unordered_map (std::__debug::unordered_map): Declare.
* include/debug/unordered_set (std::__debug::unordered_set): Declare.
* include/debug/vector (std::__debug::vector): Declare.
* testsuite/23_containers/deque/types/pmr_typedefs_debug.cc: New test.
* testsuite/23_containers/forward_list/pmr_typedefs_debug.cc: New
test.
* testsuite/23_containers/list/pmr_typedefs_debug.cc: New test.
* testsuite/23_containers/map/pmr_typedefs_debug.cc: New test.
* testsuite/23_containers/multimap/pmr_typedefs_debug.cc: New test.
* testsuite/23_containers/multiset/pmr_typedefs_debug.cc: New test.
* testsuite/23_containers/set/pmr_typedefs_debug.cc: New test.
* testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc: New
test.
* testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc:
New test.
* testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc:
New test.
* testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc: New
test.
* testsuite/23_containers/vector/cons/destructible_debug_neg.cc:
Adjust dg-error lineno.
* testsuite/23_containers/vector/types/pmr_typedefs_debug.cc: New
test.
From-SVN: r263839
Diffstat (limited to 'libstdc++-v3')
22 files changed, 392 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 53fbb8c..48a6366 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,34 @@ +2018-08-24 Jonathan Wakely <jwakely@redhat.com> + + * include/debug/deque (std::__debug::deque): Declare. + * include/debug/forward_list (std::__debug::forward_list): Declare. + * include/debug/list (std::__debug::list): Declare. + * include/debug/map (std::__debug::map): Declare. + * include/debug/set (std::__debug::set): Declare. + * include/debug/unordered_map (std::__debug::unordered_map): Declare. + * include/debug/unordered_set (std::__debug::unordered_set): Declare. + * include/debug/vector (std::__debug::vector): Declare. + * testsuite/23_containers/deque/types/pmr_typedefs_debug.cc: New test. + * testsuite/23_containers/forward_list/pmr_typedefs_debug.cc: New + test. + * testsuite/23_containers/list/pmr_typedefs_debug.cc: New test. + * testsuite/23_containers/map/pmr_typedefs_debug.cc: New test. + * testsuite/23_containers/multimap/pmr_typedefs_debug.cc: New test. + * testsuite/23_containers/multiset/pmr_typedefs_debug.cc: New test. + * testsuite/23_containers/set/pmr_typedefs_debug.cc: New test. + * testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc: New + test. + * testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc: + New test. + * testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc: + New test. + * testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc: New + test. + * testsuite/23_containers/vector/cons/destructible_debug_neg.cc: + Adjust dg-error lineno. + * testsuite/23_containers/vector/types/pmr_typedefs_debug.cc: New + test. + 2018-08-23 Jonathan Wakely <jwakely@redhat.com> * testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource): diff --git a/libstdc++-v3/include/debug/deque b/libstdc++-v3/include/debug/deque index a6047db..ad86b5c 100644 --- a/libstdc++-v3/include/debug/deque +++ b/libstdc++-v3/include/debug/deque @@ -31,6 +31,11 @@ #pragma GCC system_header +#include <bits/c++config.h> +namespace std _GLIBCXX_VISIBILITY(default) { namespace __debug { + template<typename _Tp, typename _Allocator> class deque; +} } // namespace std::__debug + #include <deque> #include <debug/safe_sequence.h> #include <debug/safe_container.h> diff --git a/libstdc++-v3/include/debug/forward_list b/libstdc++-v3/include/debug/forward_list index 840ed09..e542447 100644 --- a/libstdc++-v3/include/debug/forward_list +++ b/libstdc++-v3/include/debug/forward_list @@ -31,6 +31,11 @@ #pragma GCC system_header +#include <bits/c++config.h> +namespace std _GLIBCXX_VISIBILITY(default) { namespace __debug { + template<typename _Tp, typename _Allocator> class forward_list; +} } // namespace std::__debug + #include <forward_list> #include <debug/safe_sequence.h> #include <debug/safe_container.h> diff --git a/libstdc++-v3/include/debug/list b/libstdc++-v3/include/debug/list index e6df4dc..8add1d5 100644 --- a/libstdc++-v3/include/debug/list +++ b/libstdc++-v3/include/debug/list @@ -31,6 +31,11 @@ #pragma GCC system_header +#include <bits/c++config.h> +namespace std _GLIBCXX_VISIBILITY(default) { namespace __debug { + template<typename _Tp, typename _Allocator> class list; +} } // namespace std::__debug + #include <list> #include <debug/safe_sequence.h> #include <debug/safe_container.h> diff --git a/libstdc++-v3/include/debug/map b/libstdc++-v3/include/debug/map index 8bd513b..7151e8e 100644 --- a/libstdc++-v3/include/debug/map +++ b/libstdc++-v3/include/debug/map @@ -31,6 +31,14 @@ #pragma GCC system_header +#include <bits/c++config.h> +namespace std _GLIBCXX_VISIBILITY(default) { namespace __debug { + template<typename _Key, typename _Tp, typename _Cmp, typename _Allocator> + class map; + template<typename _Key, typename _Tp, typename _Cmp, typename _Allocator> + class multimap; +} } // namespace std::__debug + #include <map> #include <debug/map.h> #include <debug/multimap.h> diff --git a/libstdc++-v3/include/debug/set b/libstdc++-v3/include/debug/set index 08806ca..f5d41a2 100644 --- a/libstdc++-v3/include/debug/set +++ b/libstdc++-v3/include/debug/set @@ -31,6 +31,12 @@ #pragma GCC system_header +#include <bits/c++config.h> +namespace std _GLIBCXX_VISIBILITY(default) { namespace __debug { + template<typename _Key, typename _Cmp, typename _Allocator> class set; + template<typename _Key, typename _Cmp, typename _Allocator> class multiset; +} } // namespace std::__debug + #include <set> #include <debug/set.h> #include <debug/multiset.h> diff --git a/libstdc++-v3/include/debug/unordered_map b/libstdc++-v3/include/debug/unordered_map index 095a752..e558f39 100644 --- a/libstdc++-v3/include/debug/unordered_map +++ b/libstdc++-v3/include/debug/unordered_map @@ -34,6 +34,16 @@ #if __cplusplus < 201103L # include <bits/c++0x_warning.h> #else +# include <bits/c++config.h> +namespace std _GLIBCXX_VISIBILITY(default) { namespace __debug { + template<typename _Key, typename _Tp, typename _Hash, typename _Pred, + typename _Allocator> + class unordered_map; + template<typename _Key, typename _Tp, typename _Hash, typename _Pred, + typename _Allocator> + class unordered_multimap; +} } // namespace std::__debug + # include <unordered_map> #include <debug/safe_unordered_container.h> diff --git a/libstdc++-v3/include/debug/unordered_set b/libstdc++-v3/include/debug/unordered_set index ced9b18..a883d32 100644 --- a/libstdc++-v3/include/debug/unordered_set +++ b/libstdc++-v3/include/debug/unordered_set @@ -34,6 +34,13 @@ #if __cplusplus < 201103L # include <bits/c++0x_warning.h> #else +# include <bits/c++config.h> +namespace std _GLIBCXX_VISIBILITY(default) { namespace __debug { + template<typename _Key, typename _Hash, typename _Pred, typename _Allocator> + class unordered_set; + template<typename _Key, typename _Hash, typename _Pred, typename _Allocator> + class unordered_multiset; +} } // namespace std::__debug # include <unordered_set> #include <debug/safe_unordered_container.h> diff --git a/libstdc++-v3/include/debug/vector b/libstdc++-v3/include/debug/vector index e8d0928..ff9f5f4 100644 --- a/libstdc++-v3/include/debug/vector +++ b/libstdc++-v3/include/debug/vector @@ -31,6 +31,11 @@ #pragma GCC system_header +#include <bits/c++config.h> +namespace std _GLIBCXX_VISIBILITY(default) { namespace __debug { + template<typename _Tp, typename _Allocator> class vector; +} } // namespace std::__debug + #include <vector> #include <utility> #include <debug/safe_sequence.h> diff --git a/libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs_debug.cc b/libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs_debug.cc new file mode 100644 index 0000000..85c725a --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/deque/types/pmr_typedefs_debug.cc @@ -0,0 +1,25 @@ +// Copyright (C) 2018 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + +// { dg-options "-std=gnu++17 -D_GLIBCXX_DEBUG" } +// { dg-do compile { target c++17 } } + +#include <debug/deque> +static_assert(std::is_same_v< + std::pmr::deque<int>, + __gnu_debug::deque<int, std::pmr::polymorphic_allocator<int>> + >); diff --git a/libstdc++-v3/testsuite/23_containers/forward_list/pmr_typedefs_debug.cc b/libstdc++-v3/testsuite/23_containers/forward_list/pmr_typedefs_debug.cc new file mode 100644 index 0000000..410ed82 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/forward_list/pmr_typedefs_debug.cc @@ -0,0 +1,25 @@ +// Copyright (C) 2018 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + +// { dg-options "-std=gnu++17 -D_GLIBCXX_DEBUG" } +// { dg-do compile { target c++17 } } + +#include <debug/forward_list> +static_assert(std::is_same_v< + std::pmr::forward_list<int>, + __gnu_debug::forward_list<int, std::pmr::polymorphic_allocator<int>> + >); diff --git a/libstdc++-v3/testsuite/23_containers/list/pmr_typedefs_debug.cc b/libstdc++-v3/testsuite/23_containers/list/pmr_typedefs_debug.cc new file mode 100644 index 0000000..671c12e --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/list/pmr_typedefs_debug.cc @@ -0,0 +1,25 @@ +// Copyright (C) 2018 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + +// { dg-options "-std=gnu++17 -D_GLIBCXX_DEBUG" } +// { dg-do compile { target c++17 } } + +#include <debug/list> +static_assert(std::is_same_v< + std::pmr::list<int>, + __gnu_debug::list<int, std::pmr::polymorphic_allocator<int>> + >); diff --git a/libstdc++-v3/testsuite/23_containers/map/pmr_typedefs_debug.cc b/libstdc++-v3/testsuite/23_containers/map/pmr_typedefs_debug.cc new file mode 100644 index 0000000..e3978a1 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/map/pmr_typedefs_debug.cc @@ -0,0 +1,26 @@ +// Copyright (C) 2018 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + +// { dg-options "-std=gnu++17 -D_GLIBCXX_DEBUG" } +// { dg-do compile { target c++17 } } + +#include <debug/map> +static_assert(std::is_same_v< + std::pmr::map<int, int>, + __gnu_debug::map<int, int, std::less<int>, + std::pmr::polymorphic_allocator<std::pair<const int, int>>> + >); diff --git a/libstdc++-v3/testsuite/23_containers/multimap/pmr_typedefs_debug.cc b/libstdc++-v3/testsuite/23_containers/multimap/pmr_typedefs_debug.cc new file mode 100644 index 0000000..cbd4d95 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/multimap/pmr_typedefs_debug.cc @@ -0,0 +1,26 @@ +// Copyright (C) 2018 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + +// { dg-options "-std=gnu++17 -D_GLIBCXX_DEBUG" } +// { dg-do compile { target c++17 } } + +#include <debug/map> +static_assert(std::is_same_v< + std::pmr::multimap<int, int>, + __gnu_debug::multimap<int, int, std::less<int>, + std::pmr::polymorphic_allocator<std::pair<const int, int>>> + >); diff --git a/libstdc++-v3/testsuite/23_containers/multiset/pmr_typedefs_debug.cc b/libstdc++-v3/testsuite/23_containers/multiset/pmr_typedefs_debug.cc new file mode 100644 index 0000000..d8ff08d --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/multiset/pmr_typedefs_debug.cc @@ -0,0 +1,26 @@ +// Copyright (C) 2018 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + +// { dg-options "-std=gnu++17 -D_GLIBCXX_DEBUG" } +// { dg-do compile { target c++17 } } + +#include <debug/set> +static_assert(std::is_same_v< + std::pmr::multiset<int>, + __gnu_debug::multiset<int, std::less<int>, + std::pmr::polymorphic_allocator<int>> + >); diff --git a/libstdc++-v3/testsuite/23_containers/set/pmr_typedefs_debug.cc b/libstdc++-v3/testsuite/23_containers/set/pmr_typedefs_debug.cc new file mode 100644 index 0000000..f44f68a --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/set/pmr_typedefs_debug.cc @@ -0,0 +1,26 @@ +// Copyright (C) 2018 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + +// { dg-options "-std=gnu++17 -D_GLIBCXX_DEBUG" } +// { dg-do compile { target c++17 } } + +#include <debug/set> +static_assert(std::is_same_v< + std::pmr::set<int>, + __gnu_debug::set<int, std::less<int>, + std::pmr::polymorphic_allocator<int>> + >); diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc new file mode 100644 index 0000000..2c423bc --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/unordered_map/pmr_typedefs_debug.cc @@ -0,0 +1,26 @@ +// Copyright (C) 2018 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + +// { dg-options "-std=gnu++17 -D_GLIBCXX_DEBUG" } +// { dg-do compile { target c++17 } } + +#include <debug/unordered_map> +static_assert(std::is_same_v< + std::pmr::unordered_map<int, int>, + __gnu_debug::unordered_map<int, int, std::hash<int>, std::equal_to<int>, + std::pmr::polymorphic_allocator<std::pair<const int, int>>> + >); diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc new file mode 100644 index 0000000..30ae2a7 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/unordered_multimap/pmr_typedefs_debug.cc @@ -0,0 +1,27 @@ +// Copyright (C) 2018 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + +// { dg-options "-std=gnu++17 -D_GLIBCXX_DEBUG" } +// { dg-do compile { target c++17 } } + +#include <debug/unordered_map> +static_assert(std::is_same_v< + std::pmr::unordered_multimap<int, int>, + __gnu_debug::unordered_multimap<int, int, std::hash<int>, + std::equal_to<int>, + std::pmr::polymorphic_allocator<std::pair<const int, int>>> + >); diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc new file mode 100644 index 0000000..5f0ed27 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/unordered_multiset/pmr_typedefs_debug.cc @@ -0,0 +1,26 @@ +// Copyright (C) 2018 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + +// { dg-options "-std=gnu++17 -D_GLIBCXX_DEBUG" } +// { dg-do compile { target c++17 } } + +#include <debug/unordered_set> +static_assert(std::is_same_v< + std::pmr::unordered_multiset<int>, + __gnu_debug::unordered_multiset<int, std::hash<int>, std::equal_to<int>, + std::pmr::polymorphic_allocator<int>> + >); diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc new file mode 100644 index 0000000..73ad1e0 --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/unordered_set/pmr_typedefs_debug.cc @@ -0,0 +1,26 @@ +// Copyright (C) 2018 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + +// { dg-options "-std=gnu++17 -D_GLIBCXX_DEBUG" } +// { dg-do compile { target c++17 } } + +#include <debug/unordered_set> +static_assert(std::is_same_v< + std::pmr::unordered_set<int>, + __gnu_debug::unordered_set<int, std::hash<int>, std::equal_to<int>, + std::pmr::polymorphic_allocator<int>> + >); diff --git a/libstdc++-v3/testsuite/23_containers/vector/cons/destructible_debug_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/cons/destructible_debug_neg.cc index a3acaf4..587c67f 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/cons/destructible_debug_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/cons/destructible_debug_neg.cc @@ -45,4 +45,4 @@ test02() // { dg-error "value type is destructible" "" { target *-*-* } 0 } // In Debug Mode the "required from here" errors come from <debug/vector> -// { dg-error "required from here" "" { target *-*-* } 158 } +// { dg-error "required from here" "" { target *-*-* } 163 } diff --git a/libstdc++-v3/testsuite/23_containers/vector/types/pmr_typedefs_debug.cc b/libstdc++-v3/testsuite/23_containers/vector/types/pmr_typedefs_debug.cc new file mode 100644 index 0000000..f0da4ca --- /dev/null +++ b/libstdc++-v3/testsuite/23_containers/vector/types/pmr_typedefs_debug.cc @@ -0,0 +1,25 @@ +// Copyright (C) 2018 Free Software Foundation, Inc. +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 3, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + +// { dg-options "-std=gnu++17 -D_GLIBCXX_DEBUG" } +// { dg-do compile { target c++17 } } + +#include <debug/vector> +static_assert(std::is_same_v< + std::pmr::vector<int>, + __gnu_debug::vector<int, std::pmr::polymorphic_allocator<int>> + >); |