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
This commit is contained in:
parent
3413d16882
commit
9ca2ac699a
|
@ -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>
|
2018-08-23 Jonathan Wakely <jwakely@redhat.com>
|
||||||
|
|
||||||
* testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
|
* testsuite/util/testsuite_allocator.h (__gnu_test::memory_resource):
|
||||||
|
|
|
@ -31,6 +31,11 @@
|
||||||
|
|
||||||
#pragma GCC system_header
|
#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 <deque>
|
||||||
#include <debug/safe_sequence.h>
|
#include <debug/safe_sequence.h>
|
||||||
#include <debug/safe_container.h>
|
#include <debug/safe_container.h>
|
||||||
|
|
|
@ -31,6 +31,11 @@
|
||||||
|
|
||||||
#pragma GCC system_header
|
#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 <forward_list>
|
||||||
#include <debug/safe_sequence.h>
|
#include <debug/safe_sequence.h>
|
||||||
#include <debug/safe_container.h>
|
#include <debug/safe_container.h>
|
||||||
|
|
|
@ -31,6 +31,11 @@
|
||||||
|
|
||||||
#pragma GCC system_header
|
#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 <list>
|
||||||
#include <debug/safe_sequence.h>
|
#include <debug/safe_sequence.h>
|
||||||
#include <debug/safe_container.h>
|
#include <debug/safe_container.h>
|
||||||
|
|
|
@ -31,6 +31,14 @@
|
||||||
|
|
||||||
#pragma GCC system_header
|
#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 <map>
|
||||||
#include <debug/map.h>
|
#include <debug/map.h>
|
||||||
#include <debug/multimap.h>
|
#include <debug/multimap.h>
|
||||||
|
|
|
@ -31,6 +31,12 @@
|
||||||
|
|
||||||
#pragma GCC system_header
|
#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 <set>
|
||||||
#include <debug/set.h>
|
#include <debug/set.h>
|
||||||
#include <debug/multiset.h>
|
#include <debug/multiset.h>
|
||||||
|
|
|
@ -34,6 +34,16 @@
|
||||||
#if __cplusplus < 201103L
|
#if __cplusplus < 201103L
|
||||||
# include <bits/c++0x_warning.h>
|
# include <bits/c++0x_warning.h>
|
||||||
#else
|
#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 <unordered_map>
|
||||||
|
|
||||||
#include <debug/safe_unordered_container.h>
|
#include <debug/safe_unordered_container.h>
|
||||||
|
|
|
@ -34,6 +34,13 @@
|
||||||
#if __cplusplus < 201103L
|
#if __cplusplus < 201103L
|
||||||
# include <bits/c++0x_warning.h>
|
# include <bits/c++0x_warning.h>
|
||||||
#else
|
#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 <unordered_set>
|
||||||
|
|
||||||
#include <debug/safe_unordered_container.h>
|
#include <debug/safe_unordered_container.h>
|
||||||
|
|
|
@ -31,6 +31,11 @@
|
||||||
|
|
||||||
#pragma GCC system_header
|
#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 <vector>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <debug/safe_sequence.h>
|
#include <debug/safe_sequence.h>
|
||||||
|
|
|
@ -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>>
|
||||||
|
>);
|
|
@ -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>>
|
||||||
|
>);
|
|
@ -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>>
|
||||||
|
>);
|
|
@ -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>>>
|
||||||
|
>);
|
|
@ -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>>>
|
||||||
|
>);
|
|
@ -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>>
|
||||||
|
>);
|
|
@ -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>>
|
||||||
|
>);
|
|
@ -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>>>
|
||||||
|
>);
|
|
@ -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>>>
|
||||||
|
>);
|
|
@ -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>>
|
||||||
|
>);
|
|
@ -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>>
|
||||||
|
>);
|
|
@ -45,4 +45,4 @@ test02()
|
||||||
// { dg-error "value type is destructible" "" { target *-*-* } 0 }
|
// { dg-error "value type is destructible" "" { target *-*-* } 0 }
|
||||||
|
|
||||||
// In Debug Mode the "required from here" errors come from <debug/vector>
|
// 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 }
|
||||||
|
|
|
@ -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>>
|
||||||
|
>);
|
Loading…
Reference in New Issue