From 3a0f3672e53baa9accab7427bb47eaa8a7a2f151 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Tue, 15 Apr 2014 20:05:45 +0100 Subject: [PATCH] re PR c++/60786 (In C++11 an explicit instantiation with an unqualified name must be in the right namespace) PR c++/60786 * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/ 1.cc: Fix invalid explicit instantiations with unqualified names. * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/ 2.cc: Likweise. * testsuite/20_util/tuple/53648.cc: Likweise. * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc: Likewise. * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc: Likewise. * testsuite/23_containers/unordered_map/requirements/ debug_container.cc: Likewise. * testsuite/23_containers/unordered_map/requirements/ explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/unordered_multimap/requirements/debug.cc: Likewise. * testsuite/23_containers/unordered_multimap/requirements/ explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/unordered_multiset/requirements/debug.cc: Likewise. * testsuite/23_containers/unordered_multiset/requirements/ explicit_instantiation/3.cc: Likewise. * testsuite/23_containers/unordered_set/requirements/ debug_container.cc: Likewise. * testsuite/23_containers/unordered_set/requirements/ explicit_instantiation/3.cc: Likewise. From-SVN: r209431 --- libstdc++-v3/ChangeLog | 27 +++++++++++++++++++ .../requirements/explicit_instantiation/1.cc | 11 ++++---- .../requirements/explicit_instantiation/2.cc | 9 +++---- libstdc++-v3/testsuite/20_util/tuple/53648.cc | 10 +++---- .../requirements/explicit_instantiation/1.cc | 11 ++++---- .../requirements/explicit_instantiation/2.cc | 11 ++++---- .../requirements/debug_container.cc | 18 ++++++------- .../requirements/explicit_instantiation/3.cc | 5 ++-- .../unordered_multimap/requirements/debug.cc | 6 ++--- .../requirements/explicit_instantiation/3.cc | 5 ++-- .../unordered_multiset/requirements/debug.cc | 6 ++--- .../requirements/explicit_instantiation/3.cc | 5 ++-- .../requirements/debug_container.cc | 6 ++--- .../requirements/explicit_instantiation/3.cc | 5 ++-- 14 files changed, 77 insertions(+), 58 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index a9545ff1271..a2b73964521 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -22,6 +22,33 @@ * include/std/atomic: Uglify parameter names. + PR c++/60786 + * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/ + 1.cc: Fix invalid explicit instantiations with unqualified names. + * testsuite/20_util/shared_ptr/requirements/explicit_instantiation/ + 2.cc: Likweise. + * testsuite/20_util/tuple/53648.cc: Likweise. + * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc: + Likewise. + * testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc: + Likewise. + * testsuite/23_containers/unordered_map/requirements/ + debug_container.cc: Likewise. + * testsuite/23_containers/unordered_map/requirements/ + explicit_instantiation/3.cc: Likewise. + * testsuite/23_containers/unordered_multimap/requirements/debug.cc: + Likewise. + * testsuite/23_containers/unordered_multimap/requirements/ + explicit_instantiation/3.cc: Likewise. + * testsuite/23_containers/unordered_multiset/requirements/debug.cc: + Likewise. + * testsuite/23_containers/unordered_multiset/requirements/ + explicit_instantiation/3.cc: Likewise. + * testsuite/23_containers/unordered_set/requirements/ + debug_container.cc: Likewise. + * testsuite/23_containers/unordered_set/requirements/ + explicit_instantiation/3.cc: Likewise. + 2014-04-14 Jonathan Wakely * include/bits/stl_vector.h (_Vector_base::_Vector_impl, diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc index 40ebec09684..0d81481a75b 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/1.cc @@ -1,4 +1,4 @@ -// { dg-options "-std=gnu++0x" } +// { dg-options "-std=gnu++11" } // { dg-do compile } // Copyright (C) 2006-2014 Free Software Foundation, Inc. @@ -24,8 +24,7 @@ #include using namespace __gnu_test; -using std::shared_ptr; -template class shared_ptr; -template class shared_ptr; -template class shared_ptr; -template class shared_ptr; +template class std::shared_ptr; +template class std::shared_ptr; +template class std::shared_ptr; +template class std::shared_ptr; diff --git a/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc index 148375a4ad6..37a0c1d14c0 100644 --- a/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/20_util/shared_ptr/requirements/explicit_instantiation/2.cc @@ -1,4 +1,4 @@ -// { dg-options "-std=gnu++0x" } +// { dg-options "-std=gnu++11" } // { dg-do compile } // Copyright (C) 2007-2014 Free Software Foundation, Inc. @@ -27,8 +27,7 @@ // library this checks the templates can be instantiated for non-default // lock policy, for a single-threaded lib this is redundant but harmless. using namespace __gnu_test; -using std::__shared_ptr; using std::_S_single; -template class __shared_ptr; -template class __shared_ptr; -template class __shared_ptr; +template class std::__shared_ptr; +template class std::__shared_ptr; +template class std::__shared_ptr; diff --git a/libstdc++-v3/testsuite/20_util/tuple/53648.cc b/libstdc++-v3/testsuite/20_util/tuple/53648.cc index 7bde67e7e1c..fb37638f754 100644 --- a/libstdc++-v3/testsuite/20_util/tuple/53648.cc +++ b/libstdc++-v3/testsuite/20_util/tuple/53648.cc @@ -1,4 +1,4 @@ -// { dg-options "-std=gnu++0x" } +// { dg-options "-std=gnu++11" } // { dg-do compile } // Copyright (C) 2012-2014 Free Software Foundation, Inc. @@ -27,10 +27,10 @@ using std::tuple; struct A { }; -template class tuple>; -template class tuple>>; -template class tuple>>>; -template class tuple, A>, A>; +template class std::tuple>; +template class std::tuple>>; +template class std::tuple>>>; +template class std::tuple, A>, A>; // Verify the following QoI properties are preserved diff --git a/libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc index c5a30f27272..0a15e46b8b6 100644 --- a/libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc +++ b/libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc @@ -1,4 +1,4 @@ -// { dg-options "-std=gnu++0x" } +// { dg-options "-std=gnu++11" } // { dg-do compile } // Copyright (C) 2006-2014 Free Software Foundation, Inc. @@ -24,8 +24,7 @@ #include using namespace __gnu_test; -using std::weak_ptr; -template class weak_ptr; -template class weak_ptr; -template class weak_ptr; -template class weak_ptr; +template class std::weak_ptr; +template class std::weak_ptr; +template class std::weak_ptr; +template class std::weak_ptr; diff --git a/libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc b/libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc index 5c1e91b7950..c0873a14898 100644 --- a/libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc +++ b/libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/2.cc @@ -1,4 +1,4 @@ -// { dg-options "-std=gnu++0x" } +// { dg-options "-std=gnu++11" } // { dg-do compile } // Copyright (C) 2007-2014 Free Software Foundation, Inc. @@ -27,9 +27,8 @@ // library this checks the templates can be instantiated for non-default // lock policy, for a single-threaded lib this is redundant but harmless. using namespace __gnu_test; -using std::__weak_ptr; using std::_S_single; -template class __weak_ptr; -template class __weak_ptr; -template class __weak_ptr; -template class __weak_ptr; +template class std::__weak_ptr; +template class std::__weak_ptr; +template class std::__weak_ptr; +template class std::__weak_ptr; diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/requirements/debug_container.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/requirements/debug_container.cc index abd9d2c0bd0..c4d3442f672 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_map/requirements/debug_container.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_map/requirements/debug_container.cc @@ -1,4 +1,4 @@ -// { dg-options "-std=gnu++0x" } +// { dg-options "-std=gnu++11" } // { dg-do compile } // Copyright (C) 2007-2014 Free Software Foundation, Inc. @@ -21,18 +21,16 @@ #include #include -using namespace __gnu_debug; - using std::allocator; using std::equal_to; using std::hash; using std::pair; using std::string; -template class unordered_map; -template class unordered_map, equal_to, - allocator > >; -template class unordered_map, equal_to, - allocator >; +template class __gnu_debug::unordered_map; +template class __gnu_debug::unordered_map, equal_to, + allocator>>; +template class __gnu_debug::unordered_map, equal_to, + allocator>; diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc index de46c5ce621..145d23e123f 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_map/requirements/explicit_instantiation/3.cc @@ -1,4 +1,4 @@ -// { dg-options "-std=gnu++0x" } +// { dg-options "-std=gnu++11" } // { dg-do compile } // Copyright (C) 2007-2014 Free Software Foundation, Inc. @@ -21,4 +21,5 @@ #include using namespace std; -template class unordered_map, equal_to, allocator>; +template class std::unordered_map, equal_to, + allocator>; diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/debug.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/debug.cc index 488dbe5e9ec..d2d70764f5c 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/debug.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/debug.cc @@ -1,4 +1,4 @@ -// { dg-options "-std=gnu++0x" } +// { dg-options "-std=gnu++11" } // { dg-do compile } // Copyright (C) 2007-2014 Free Software Foundation, Inc. @@ -21,8 +21,6 @@ #include #include -using namespace __gnu_debug; - using std::string; -template class unordered_multimap; +template class __gnu_debug::unordered_multimap; diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc index e3d0f47c42c..8640bc320c4 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/explicit_instantiation/3.cc @@ -1,4 +1,4 @@ -// { dg-options "-std=gnu++0x" } +// { dg-options "-std=gnu++11" } // { dg-do compile } // Copyright (C) 2007-2014 Free Software Foundation, Inc. @@ -21,4 +21,5 @@ #include using namespace std; -template class unordered_multimap, equal_to, allocator>; +template class std::unordered_multimap, equal_to, + allocator>; diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/debug.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/debug.cc index bc3544119ec..5e916ad7685 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/debug.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/debug.cc @@ -1,4 +1,4 @@ -// { dg-options "-std=gnu++0x" } +// { dg-options "-std=gnu++11" } // { dg-do compile } // Copyright (C) 2007-2014 Free Software Foundation, Inc. @@ -21,6 +21,4 @@ #include #include -using namespace __gnu_debug; - -template class unordered_multiset; +template class __gnu_debug::unordered_multiset; diff --git a/libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc index 2a81347eed1..c4624b59147 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/explicit_instantiation/3.cc @@ -1,4 +1,4 @@ -// { dg-options "-std=gnu++0x" } +// { dg-options "-std=gnu++11" } // { dg-do compile } // Copyright (C) 2007-2014 Free Software Foundation, Inc. @@ -21,4 +21,5 @@ #include using namespace std; -template class unordered_multiset, equal_to, allocator>; +template class std::unordered_multiset, equal_to, + allocator>; diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/requirements/debug_container.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/requirements/debug_container.cc index 948c66266d3..f6ab58588ca 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_set/requirements/debug_container.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_set/requirements/debug_container.cc @@ -1,4 +1,4 @@ -// { dg-options "-std=gnu++0x" } +// { dg-options "-std=gnu++11" } // { dg-do compile } // Copyright (C) 2007-2014 Free Software Foundation, Inc. @@ -20,6 +20,4 @@ #include -using namespace __gnu_debug; - -template class unordered_set; +template class __gnu_debug::unordered_set; diff --git a/libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc b/libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc index 5cdcb3e314d..27be027da6b 100644 --- a/libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc +++ b/libstdc++-v3/testsuite/23_containers/unordered_set/requirements/explicit_instantiation/3.cc @@ -1,4 +1,4 @@ -// { dg-options "-std=gnu++0x" } +// { dg-options "-std=gnu++11" } // { dg-do compile } // Copyright (C) 2007-2014 Free Software Foundation, Inc. @@ -21,4 +21,5 @@ #include using namespace std; -template class unordered_set, equal_to, allocator>; +template class std::unordered_set, equal_to, + allocator>;