aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite/tr1
diff options
context:
space:
mode:
Diffstat (limited to 'libstdc++-v3/testsuite/tr1')
-rw-r--r--libstdc++-v3/testsuite/tr1/2_general_utilities/headers/functional/synopsis.cc35
-rw-r--r--libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/synopsis.cc66
-rw-r--r--libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/types_std_tr1.cc26
-rw-r--r--libstdc++-v3/testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/requirements/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/explicit_instantiation/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/2_general_utilities/memory/shared_ptr/requirements/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/tr1/2_general_utilities/memory/shared_ptr/explicit_instantiation/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/2_general_utilities/memory/weak_ptr/requirements/explicit_instantiation/1.cc (renamed from libstdc++-v3/testsuite/tr1/2_general_utilities/memory/weak_ptr/explicit_instantiation/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/synopsis.cc80
-rw-r--r--libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/types_std_tr1.cc26
-rw-r--r--libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/using_namespace_std_tr1_placeholders.cc26
-rw-r--r--libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc104
-rw-r--r--libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc27
-rw-r--r--libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/synopsis.cc97
-rw-r--r--libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/types_std_tr1.cc27
-rw-r--r--libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/typedefs.cc (renamed from libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/requirements.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/array/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/array/requirements/instantiate.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/hash/24799.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/hash/24799.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/base_classes.cc33
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/hash.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/headers/array/synopsis.cc52
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/headers/functional/synopsis.cc51
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/synopsis.cc71
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/types_std_tr1.cc26
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_map/synopsis.cc54
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_set/synopsis.cc53
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/tuple/requirements/explicit_instantiation.cc34
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered/23781.cc43
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/24064.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24064.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-map.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/24061-map.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-map.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/find/map1.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/find/map1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/24061-map.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-map.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/array_syntax.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/array_syntax.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_range.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_range.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_single.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_single.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/map.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_neg.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/types/map_iterator.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc36
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/1.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/2.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multimap.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/24061-multimap.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multimap.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/find/multimap1.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multimap1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/24061-multimap.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multimap.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_range.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_range.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_single.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_single.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multimap.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multimap_iterator.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc36
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/1.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/2.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/24054.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24054.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multiset.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/24061-multiset.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multiset.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/find/multiset1.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multiset1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/24061-multiset.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multiset.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_range.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_range.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_single.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_single.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multiset.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multiset_iterator.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc36
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/1.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/2.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23053.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23053.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23465.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23465.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26127.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26127.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26132.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26132.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-set.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/24061-set.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-set.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/find/set1.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/find/set1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/24061-set.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-set.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_range.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_range.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_single.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_single.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/set.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_neg.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/types/set_iterator.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc36
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterators_default_constructor.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/iterators_default_constructor.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/1.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/1.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/2.cc (renamed from libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/2.cc)0
-rw-r--r--libstdc++-v3/testsuite/tr1/using_namespace_std_tr1.cc26
79 files changed, 1058 insertions, 43 deletions
diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/functional/synopsis.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/functional/synopsis.cc
new file mode 100644
index 00000000000..cd6e2b0dcfe
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/functional/synopsis.cc
@@ -0,0 +1,35 @@
+// { dg-do compile }
+
+// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2007 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 2, 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 COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/functional>
+
+namespace std {
+namespace tr1 {
+
+ template <class T> class reference_wrapper;
+ template <class T> reference_wrapper<T> ref(T&);
+ template <class T> reference_wrapper<const T> cref(const T&);
+ template <class T> reference_wrapper<T> ref(reference_wrapper<T>);
+ template <class T> reference_wrapper<const T> cref(reference_wrapper<T>);
+
+} // namespace tr1
+} // namespace std
diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/synopsis.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/synopsis.cc
new file mode 100644
index 00000000000..d3f15203c56
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/synopsis.cc
@@ -0,0 +1,66 @@
+// { dg-do compile }
+
+// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2007 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 2, 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 COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/memory>
+
+namespace std {
+namespace tr1 {
+
+ // [2.2.2] Class bad_weak_ptr
+ class bad_weak_ptr;
+
+ // [2.2.3] Class template shared_ptr
+ template<class T> class shared_ptr;
+
+ // [2.2.3.6] shared_ptr comparisons
+ template<class T, class U> bool operator==(shared_ptr<T> const& a, shared_ptr<U> const& b);
+ template<class T, class U> bool operator!=(shared_ptr<T> const& a, shared_ptr<U> const& b);
+ template<class T, class U> bool operator<(shared_ptr<T> const& a, shared_ptr<U> const& b);
+
+ // [2.2.3.8] shared_ptr specialized algorithms
+ template<class T> void swap(shared_ptr<T>& a, shared_ptr<T>& b);
+
+ // [2.2.3.9] shared_ptr casts
+ template<class T, class U> shared_ptr<T> static_pointer_cast(shared_ptr<U> const& r);
+ template<class T, class U> shared_ptr<T> dynamic_pointer_cast(shared_ptr<U> const& r);
+ template<class T, class U> shared_ptr<T> const_pointer_cast(shared_ptr<U> const& r);
+
+ // [2.2.3.7] shared_ptr I/O
+ template<class E, class T, class Y>
+ basic_ostream<E, T>& operator<< (basic_ostream<E, T>& os, shared_ptr<Y> const& p);
+
+ // [2.2.3.10] shared_ptr get_deleter
+ template<class D, class T> D* get_deleter(shared_ptr<T> const& p);
+
+ // [2.2.4] Class template weak_ptr
+ template<class T> class weak_ptr;
+
+ // [2.2.4.6] weak_ptr comparison
+ template<class T, class U> bool operator<(weak_ptr<T> const& a, weak_ptr<U> const& b);
+
+ // [2.2.4.7] weak_ptr specialized algorithms
+ template<class T> void swap(weak_ptr<T>& a, weak_ptr<T>& b);
+
+ // [2.2.5] Class enable_shared_from_this
+ template<class T> class enable_shared_from_this;
+} // namespace tr1
+} // namespace std
diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/types_std_tr1.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/types_std_tr1.cc
new file mode 100644
index 00000000000..3a3717a3301
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/2_general_utilities/headers/memory/types_std_tr1.cc
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 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 2, 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 COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/memory>
+
+namespace gnu
+{
+ using std::tr1::bad_weak_ptr;
+}
diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/requirements/explicit_instantiation/1.cc
index b497ebb0a4a..b497ebb0a4a 100644
--- a/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/explicit_instantiation/1.cc
+++ b/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/enable_shared_from_this/requirements/explicit_instantiation/1.cc
diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/shared_ptr/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/shared_ptr/requirements/explicit_instantiation/1.cc
index 015e22ec79b..015e22ec79b 100644
--- a/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/shared_ptr/explicit_instantiation/1.cc
+++ b/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/shared_ptr/requirements/explicit_instantiation/1.cc
diff --git a/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/weak_ptr/explicit_instantiation/1.cc b/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/weak_ptr/requirements/explicit_instantiation/1.cc
index 6c22459dab6..6c22459dab6 100644
--- a/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/weak_ptr/explicit_instantiation/1.cc
+++ b/libstdc++-v3/testsuite/tr1/2_general_utilities/memory/weak_ptr/requirements/explicit_instantiation/1.cc
diff --git a/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/synopsis.cc b/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/synopsis.cc
new file mode 100644
index 00000000000..836c67005e7
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/synopsis.cc
@@ -0,0 +1,80 @@
+// { dg-do compile }
+
+// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2007 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 2, 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 COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/functional>
+
+namespace std {
+namespace tr1 {
+
+ // [3.4] class template result_of
+ template <class FunctionCallType> class result_of;
+
+#if 0
+ // [3.5] function template mem_fn
+ template<class R, class T> unspecified mem_fn(R T::* pm);
+#endif
+
+ // [3.6] function object binders
+ template<class T> struct is_bind_expression;
+ template<class T> struct is_placeholder;
+
+#if 0
+ template<class F, class T1, ..., class TN>
+ unspecified bind(F f, T1 t1, ..., TN tN);
+
+ template<class R, class F, class T1, ..., class Tn >
+ unspecified bind(F f, T1 t1, ..., TN tN);
+
+ namespace placeholders {
+ // M is the implementation-defined number of placeholders
+ extern unspecified _1;
+ extern unspecified _2;
+ .
+ .
+ .
+ extern unspecified _M;
+ }
+#endif
+
+ // [3.7] polymorphic function wrappers
+ class bad_function_call;
+ template<class Function> class function;
+ template<class Function>
+ void swap(function<Function>&, function<Function>&);
+ template<class Function1, class Function2>
+ void operator==(const function<Function1>&, const function<Function2>&);
+ template<class Function1, class Function2>
+ void operator!=(const function<Function1>&, const function<Function2>&);
+
+#if 0
+ template <class Function>
+ bool operator==(const function<Function>&, unspecified-null-pointer-type);
+ template <class Function>
+ bool operator==(unspecified-null-pointer-type, const function<Function>&);
+ template <class Function>
+ bool operator!=(const function<Function>&, unspecified-null-pointer-type);
+ template <class Function>
+ bool operator!=(unspecified-null-pointer-type, const function<Function>&);
+#endif
+
+} // namespace tr1
+} // namespace std
diff --git a/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/types_std_tr1.cc b/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/types_std_tr1.cc
new file mode 100644
index 00000000000..b61e5f2acfb
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/types_std_tr1.cc
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 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 2, 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 COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/functional>
+
+namespace gnu
+{
+ using std::tr1::bad_function_call;
+}
diff --git a/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/using_namespace_std_tr1_placeholders.cc b/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/using_namespace_std_tr1_placeholders.cc
new file mode 100644
index 00000000000..faddc0dcc65
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/3_function_objects/headers/functional/using_namespace_std_tr1_placeholders.cc
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 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 2, 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 COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/tuple>
+
+namespace gnu
+{
+ using namespace std::tr1::placeholders;
+}
diff --git a/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc
new file mode 100644
index 00000000000..83ea1acdf82
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/synopsis.cc
@@ -0,0 +1,104 @@
+// { dg-do compile }
+
+// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2007 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 2, 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 COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/type_traits>
+
+namespace std {
+namespace tr1 {
+
+ // [4.3] helper class:
+ template <class T, T v> struct integral_constant;
+ typedef integral_constant<bool, true> true_type;
+ typedef integral_constant<bool, false> false_type;
+
+ // [4.5.1] primary type categories:
+ template <class T> struct is_void;
+ template <class T> struct is_integral;
+ template <class T> struct is_floating_point;
+ template <class T> struct is_array;
+ template <class T> struct is_pointer;
+ template <class T> struct is_reference;
+ template <class T> struct is_member_object_pointer;
+ template <class T> struct is_member_function_pointer;
+ template <class T> struct is_enum;
+ template <class T> struct is_union;
+ template <class T> struct is_class;
+ template <class T> struct is_function;
+
+ // [4.5.2] composite type categories:
+ template <class T> struct is_arithmetic;
+ template <class T> struct is_fundamental;
+ template <class T> struct is_object;
+ template <class T> struct is_scalar;
+ template <class T> struct is_compound;
+ template <class T> struct is_member_pointer;
+
+ // [4.5.3] type properties:
+ template <class T> struct is_const;
+ template <class T> struct is_volatile;
+ template <class T> struct is_pod;
+ template <class T> struct is_empty;
+ template <class T> struct is_polymorphic;
+ template <class T> struct is_abstract;
+ template <class T> struct has_trivial_constructor;
+ template <class T> struct has_trivial_copy;
+ template <class T> struct has_trivial_assign;
+ template <class T> struct has_trivial_destructor;
+ template <class T> struct has_nothrow_constructor;
+ template <class T> struct has_nothrow_copy;
+ template <class T> struct has_nothrow_assign;
+ template <class T> struct has_virtual_destructor;
+ template <class T> struct is_signed;
+ template <class T> struct is_unsigned;
+ template <class T> struct alignment_of;
+ template <class T> struct rank;
+ template <class T, unsigned I> struct extent;
+
+ // [4.6] type relations:
+ template <class T, class U> struct is_same;
+ template <class Base, class Derived> struct is_base_of;
+ template <class From, class To> struct is_convertible;
+
+ // [4.7.1] const-volatile modifications:
+ template <class T> struct remove_const;
+ template <class T> struct remove_volatile;
+ template <class T> struct remove_cv;
+ template <class T> struct add_const;
+ template <class T> struct add_volatile;
+ template <class T> struct add_cv;
+
+ // [4.7.2] reference modifications:
+ template <class T> struct remove_reference;
+ template <class T> struct add_reference;
+
+ // [4.7.3] array modifications:
+ template <class T> struct remove_extent;
+ template <class T> struct remove_all_extents;
+
+ // [4.7.4] pointer modifications:
+ template <class T> struct remove_pointer;
+ template <class T> struct add_pointer;
+
+ // [4.8] other transformations:
+ template <std::size_t Len, std::size_t Align> struct aligned_storage;
+} // namespace tr1
+} // namespace std
diff --git a/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc b/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc
new file mode 100644
index 00000000000..bdb3a6e3f54
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/4_metaprogramming/headers/type_traits/types_std_tr1.cc
@@ -0,0 +1,27 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 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 2, 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 COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/type_traits>
+
+namespace gnu
+{
+ using std::tr1::true_type;
+ using std::tr1::false_type;
+}
diff --git a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/synopsis.cc b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/synopsis.cc
new file mode 100644
index 00000000000..fe0c2df42f1
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/synopsis.cc
@@ -0,0 +1,97 @@
+// { dg-do compile }
+
+// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2007 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 2, 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 COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/random>
+
+namespace std {
+namespace tr1 {
+
+ // [5.1.3] Class template variate_generator
+ template<class UniformRandomNumberGenerator, class Distribution>
+ class variate_generator;
+
+ // [5.1.4.1] Class template linear_congruential
+ template<class IntType, IntType a, IntType c, IntType m>
+ class linear_congruential;
+
+ // [5.1.4.2] Class template mersenne_twister
+ template<class UIntType, int w, int n, int m, int r,
+ UIntType a, int u, int s, UIntType b, int t, UIntType c, int l>
+ class mersenne_twister;
+
+ // [5.1.4.3] Class template subtract_with_carry
+ template<class IntType, IntType m, int s, int r>
+ class subtract_with_carry;
+
+ // [5.1.4.4] Class template subtract_with_carry_01
+ template<class RealType, int w, int s, int r>
+ class subtract_with_carry_01;
+
+ // [5.1.4.5] Class template discard_block
+ template<class UniformRandomNumberGenerator, int p, int r>
+ class discard_block;
+
+ // [5.1.4.6] Class template xor_combine
+ template<class UniformRandomNumberGenerator1, int s1,
+ class UniformRandomNumberGenerator2, int s2>
+ class xor_combine;
+
+ // [5.1.6] Class random_device
+ class random_device;
+
+ // [5.1.7.1] Class template uniform_int
+ template<class IntType>
+ class uniform_int;
+
+ // [5.1.7.2] Class bernoulli_distribution
+ class bernoulli_distribution;
+
+ // [5.1.7.3] Class template geometric_distribution
+ template<class IntType, class RealType>
+ class geometric_distribution;
+
+ // [5.1.7.4] Class template poisson_distribution
+ template<class IntType, class RealType>
+ class poisson_distribution;
+
+ // [5.1.7.5] Class template binomial_distribution
+ template<class IntType, class RealType>
+ class binomial_distribution;
+
+ // [5.1.7.6] Class template uniform_real
+ template<class RealType>
+ class uniform_real;
+
+ // [5.1.7.7] Class template exponential_distribution
+ template<class RealType>
+ class exponential_distribution;
+
+ // [5.1.7.8] Class template normal_distribution
+ template<class RealType>
+ class normal_distribution;
+
+ // [5.1.7.9] Class template gamma_distribution
+ template<class RealType>
+ class gamma_distribution;
+
+} // namespace tr1
+} // namespace std
diff --git a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/types_std_tr1.cc b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/types_std_tr1.cc
new file mode 100644
index 00000000000..2fd21499116
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/headers/random/types_std_tr1.cc
@@ -0,0 +1,27 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 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 2, 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 COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/random>
+
+namespace gnu
+{
+ using std::tr1::random_device;
+ using std::tr1::bernoulli_distribution;
+}
diff --git a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/requirements.cc b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/typedefs.cc
index ced6ba17fdd..ced6ba17fdd 100644
--- a/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/requirements.cc
+++ b/libstdc++-v3/testsuite/tr1/5_numerical_facilities/random/discard_block/requirements/typedefs.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/array/requirements/instantiate.cc b/libstdc++-v3/testsuite/tr1/6_containers/array/requirements/explicit_instantiation.cc
index 7ab5c2ad68c..7ab5c2ad68c 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/array/requirements/instantiate.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/array/requirements/explicit_instantiation.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hash/24799.cc b/libstdc++-v3/testsuite/tr1/6_containers/hash/24799.cc
index 90a336bdf2e..90a336bdf2e 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hash/24799.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/hash/24799.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/base_classes.cc b/libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/base_classes.cc
new file mode 100644
index 00000000000..4a4916c9cf0
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/base_classes.cc
@@ -0,0 +1,33 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 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 2, 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 COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/functional>
+
+void test01()
+{
+ // Check for required base class.
+ typedef long value_type;
+ typedef std::tr1::hash<value_type> test_type;
+ typedef std::unary_function<value_type, std::size_t> base_type;
+
+ test_type b;
+ const test_type& obj = b;
+ const base_type* base __attribute__((unused)) = &obj;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/hash.cc b/libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/explicit_instantiation.cc
index 382d69f715c..382d69f715c 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/hash.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/hash/requirements/explicit_instantiation.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/headers/array/synopsis.cc b/libstdc++-v3/testsuite/tr1/6_containers/headers/array/synopsis.cc
new file mode 100644
index 00000000000..463f3aca9dc
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/headers/array/synopsis.cc
@@ -0,0 +1,52 @@
+// { dg-do compile }
+
+// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2007 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 2, 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 COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/array>
+
+namespace std {
+namespace tr1 {
+
+ // [6.2.2] Class template array
+ template <class T, size_t N > struct array;
+
+ // Array comparisons
+ template <class T, size_t N> bool operator==(const array<T,N>& x, const array<T,N>& y);
+ template <class T, size_t N> bool operator!=(const array<T,N>& x, const array<T,N>& y);
+ template <class T, size_t N> bool operator<(const array<T,N>& x, const array<T,N>& y);
+ template <class T, size_t N> bool operator>(const array<T,N>& x, const array<T,N>& y);
+ template <class T, size_t N> bool operator<=(const array<T,N>& x, const array<T,N>& y);
+ template <class T, size_t N> bool operator>=(const array<T,N>& x, const array<T,N>& y);
+
+ // [6.2.2.2] Specialized algorithms
+ template <class T, size_t N > void swap(array<T,N>& x, array<T,N>& y);
+
+ // [6.2.2.5] Tuple interface to class template array
+ template <class T> class tuple_size; // forward declaration
+ template <int I, class T> class tuple_element; // forward declaration
+ template <class T, size_t N> struct tuple_size<array<T, N> >;
+ template <int I, class T, size_t N> struct tuple_element<I, array<T, N> >;
+ template <int I, class T, size_t N> T& get(array<T, N>&);
+ template <int I, class T, size_t N> const T& get(const array<T, N>&);
+
+} // namespace tr1
+} // namespace std
+
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/headers/functional/synopsis.cc b/libstdc++-v3/testsuite/tr1/6_containers/headers/functional/synopsis.cc
new file mode 100644
index 00000000000..682593c295a
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/headers/functional/synopsis.cc
@@ -0,0 +1,51 @@
+// { dg-do compile }
+
+// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2007 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 2, 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 COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/functional>
+
+namespace std {
+namespace tr1 {
+
+ // [6.3.3] Hash function base template
+ template <class T> struct hash;
+
+ // Hash function specializations
+ template <> struct hash<bool>;
+ template <> struct hash<char>;
+ template <> struct hash<signed char>;
+ template <> struct hash<unsigned char>;
+ template <> struct hash<wchar_t>;
+ template <> struct hash<short>;
+ template <> struct hash<unsigned short>;
+ template <> struct hash<int>;
+ template <> struct hash<unsigned int>;
+ template <> struct hash<long>;
+ template <> struct hash<unsigned long>;
+ template <> struct hash<float>;
+ template <> struct hash<double>;
+ template <> struct hash<long double>;
+ template<class T> struct hash<T*>;
+ template <> struct hash<std::string>;
+ template <> struct hash<std::wstring>;
+
+} // namespace tr1
+} // namespace std
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/synopsis.cc b/libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/synopsis.cc
new file mode 100644
index 00000000000..72fb92900e9
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/synopsis.cc
@@ -0,0 +1,71 @@
+// { dg-do compile }
+
+// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2007 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 2, 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 COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/tuple>
+
+namespace std {
+namespace tr1 {
+
+#if 0
+ // [6.1.3] Class template tuple
+ template <class T1 = unspecified ,
+ class T2 = unspecified ,
+ ...,
+ class TM = unspecified > class tuple;
+
+ // [6.1.3.2] Tuple creation functions
+ const unspecified ignore;
+ template<class T1, class T2, ..., class TN>
+ tuple<V1, V2, ..., VN> make_tuple(const T1&, const T2& , ..., const TN&);
+
+ template<class T1, class T2, ..., class TN>
+ tuple<T1&, T2&, ..., TN&> tie(T1&, T2& , ..., TN&);
+#endif
+
+ // [6.1.3.3] Tuple helper classes
+ template <class T> class tuple_size;
+ template <int I, class T> class tuple_element;
+
+#if 0
+ // [6.1.3.4] Element access
+ template <int I, class T1, class T2, ..., class TN>
+ RJ get(tuple<T1, T2, ..., TN>&);
+ template <int I, class T1, class T2, ..., class TN>
+ PJ get(const tuple<T1, T2, ..., TN>&);
+
+ // [6.1.3.5] relational operators
+ template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM>
+ bool operator==(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&);
+ template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM>
+ bool operator<(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&);
+ template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM>
+ bool operator!=(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&);
+ template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM>
+ bool operator>(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&);
+ template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM>
+ bool operator<=(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&);
+ template<class T1, class T2, ..., class TM, class U1, class U2, ..., class UM>
+ bool operator>=(const tuple<T1, T2, ..., TM>&, const tuple<U1, U2, ..., UM>&);
+#endif
+
+} // namespace tr1
+} // namespace std
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/types_std_tr1.cc b/libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/types_std_tr1.cc
new file mode 100644
index 00000000000..2c543f0df34
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/headers/tuple/types_std_tr1.cc
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 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 2, 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 COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/tuple>
+
+namespace gnu
+{
+ using std::tr1::ignore;
+}
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_map/synopsis.cc b/libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_map/synopsis.cc
new file mode 100644
index 00000000000..45080fc40f5
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_map/synopsis.cc
@@ -0,0 +1,54 @@
+// { dg-do compile { xfail *-*-* } }
+// { dg-excess-errors "" }
+
+// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2007 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 2, 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 COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/unordered_map>
+
+namespace std {
+namespace tr1 {
+
+ // [6.3.4.4] Class template unordered_map
+ template <class Key,
+ class T,
+ class Hash,
+ class Pred,
+ class Alloc>
+ class unordered_map;
+
+ // [6.3.4.6] Class template unordered_multimap
+ template <class Key,
+ class T,
+ class Hash,
+ class Pred,
+ class Alloc>
+ class unordered_multimap;
+
+template <class Key, class T, class Hash, class Pred, class Alloc>
+ void swap(unordered_map<Key, T, Hash, Pred, Alloc>& x,
+ unordered_map<Key, T, Hash, Pred, Alloc>& y);
+template <class Key, class T, class Hash, class Pred, class Alloc>
+ void swap(unordered_multimap<Key, T, Hash, Pred, Alloc>& x,
+ unordered_multimap<Key, T, Hash, Pred, Alloc>& y);
+
+} // namespace tr1
+} // namespace std
+
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_set/synopsis.cc b/libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_set/synopsis.cc
new file mode 100644
index 00000000000..29cced09bd2
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/headers/unordered_set/synopsis.cc
@@ -0,0 +1,53 @@
+// { dg-do compile { xfail *-*-* } }
+// { dg-excess-errors "" }
+
+// 2007-02-04 Benjamin Kosnik <bkoz@redhat.com>
+//
+// Copyright (C) 2007 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 2, 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 COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+#include <tr1/unordered_set>
+
+namespace std {
+namespace tr1 {
+
+ // [6.3.4.3] Class template unordered_set
+ template <class Value,
+ class Hash,
+ class Pred,
+ class Alloc>
+ class unordered_set;
+
+ // [6.3.4.5] Class template unordered_multiset
+ template <class Value,
+ class Hash,
+ class Pred,
+ class Alloc>
+ class unordered_multiset;
+
+ template <class Value, class Hash, class Pred, class Alloc>
+ void swap(unordered_set<Value, Hash, Pred, Alloc>& x,
+ unordered_set<Value, Hash, Pred, Alloc>& y);
+
+ template <class Value, class Hash, class Pred, class Alloc>
+ void swap(unordered_multiset<Value, Hash, Pred, Alloc>& x,
+ unordered_multiset<Value, Hash, Pred, Alloc>& y);
+
+} // namespace tr1
+} // namespace std
+
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/tuple/requirements/explicit_instantiation.cc b/libstdc++-v3/testsuite/tr1/6_containers/tuple/requirements/explicit_instantiation.cc
new file mode 100644
index 00000000000..c2a2321b08a
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/tuple/requirements/explicit_instantiation.cc
@@ -0,0 +1,34 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 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 2, 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 COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02110-1301, USA.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// This file tests explicit instantiation of library containers.
+
+#include <tr1/tuple>
+
+template class std::tr1::tuple<short, int, double>;
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/23781.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered/23781.cc
deleted file mode 100644
index a5479932315..00000000000
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/23781.cc
+++ /dev/null
@@ -1,43 +0,0 @@
-// 2005-09-10 Paolo Carlini <pcarlini@suse.de>
-//
-// Copyright (C) 2005 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 2, 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 COPYING. If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-//
-// As a special exception, you may use this file as part of a free software
-// library without restriction. Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License. This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// { dg-do compile }
-
-// libstdc++/23781
-#include <tr1/unordered_map>
-#include <tr1/unordered_set>
-
-std::tr1::unordered_map<int, int>::iterator it1 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_map<int, int>::const_iterator cit1 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_multimap<int, int>::iterator it2 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_multimap<int, int>::const_iterator cit2 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_multiset<int>::iterator it3 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_multiset<int>::const_iterator cit3 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_set<int>::iterator it4 = NULL; // { dg-error "conversion" }
-std::tr1::unordered_set<int>::const_iterator cit4 = NULL; // { dg-error "conversion" }
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24064.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/24064.cc
index 74eabbf53f9..74eabbf53f9 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24064.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/24064.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-map.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc
index 459ace41a88..459ace41a88 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-map.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/capacity/29134-map.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-map.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/24061-map.cc
index 9289b65859c..9289b65859c 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-map.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/erase/24061-map.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/map1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/find/map1.cc
index 8ff05d25d1f..8ff05d25d1f 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/map1.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/find/map1.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-map.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/24061-map.cc
index 8e290afd7f7..8e290afd7f7 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-map.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/24061-map.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/array_syntax.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/array_syntax.cc
index 2664d76eb57..2664d76eb57 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/array_syntax.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/array_syntax.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_range.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_range.cc
index 424cfb3948b..424cfb3948b 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_range.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_range.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_single.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_single.cc
index a4b02e8bdf0..a4b02e8bdf0 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/map_single.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/insert/map_single.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/map.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc
index 41ce95db89e..41ce95db89e 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/map.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/explicit_instantiation.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/map_iterator.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_neg.cc
index da644048f1b..da644048f1b 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/map_iterator.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_neg.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc
new file mode 100644
index 00000000000..8031c6de89d
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/iterator_null_neg.cc
@@ -0,0 +1,36 @@
+// 2005-09-10 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 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 2, 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 COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+// libstdc++/23781
+#include <tr1/unordered_map>
+
+std::tr1::unordered_map<int, int>::iterator it1 = NULL; // { dg-error "conversion" }
+std::tr1::unordered_map<int, int>::const_iterator cit1 = NULL; // { dg-error "conversion" }
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/1.cc
index d379774926d..d379774926d 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/1.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/1.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/2.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/2.cc
index 8d708292ae3..8d708292ae3 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_map/2.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_map/swap/2.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multimap.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc
index af41fa154d6..af41fa154d6 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multimap.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/capacity/29134-multimap.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multimap.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/24061-multimap.cc
index b9980b73136..b9980b73136 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multimap.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/erase/24061-multimap.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multimap1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/find/multimap1.cc
index 1fc3e18addb..1fc3e18addb 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multimap1.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/find/multimap1.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multimap.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/24061-multimap.cc
index a744c8bb381..a744c8bb381 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multimap.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/24061-multimap.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_range.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_range.cc
index 6296c4fd560..6296c4fd560 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_range.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_range.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_single.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_single.cc
index 815b8648ffa..815b8648ffa 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multimap_single.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/insert/multimap_single.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multimap.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/explicit_instantiation.cc
index d48aef831b6..d48aef831b6 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multimap.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/explicit_instantiation.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multimap_iterator.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc
index a3d705ae81b..a3d705ae81b 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multimap_iterator.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_neg.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc
new file mode 100644
index 00000000000..72b9505ff5d
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/iterator_null_neg.cc
@@ -0,0 +1,36 @@
+// 2005-09-10 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 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 2, 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 COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+// libstdc++/23781
+#include <tr1/unordered_map>
+
+std::tr1::unordered_multimap<int, int>::iterator it2 = NULL; // { dg-error "conversion" }
+std::tr1::unordered_multimap<int, int>::const_iterator cit2 = NULL; // { dg-error "conversion" }
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/1.cc
index 7648e08bd62..7648e08bd62 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/1.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/1.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/2.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/2.cc
index f7744ebe854..f7744ebe854 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multimap/2.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/swap/2.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24054.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/24054.cc
index 073d2407512..073d2407512 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/24054.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/24054.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multiset.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc
index 923af9be118..923af9be118 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-multiset.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/capacity/29134-multiset.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multiset.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/24061-multiset.cc
index a00beab4943..a00beab4943 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-multiset.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/erase/24061-multiset.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multiset1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/find/multiset1.cc
index b06d511af82..b06d511af82 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/multiset1.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/find/multiset1.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multiset.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/24061-multiset.cc
index 9467f418ef3..9467f418ef3 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-multiset.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/24061-multiset.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_range.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_range.cc
index a83fce3cd61..a83fce3cd61 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_range.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_range.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_single.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_single.cc
index 48fd1d4b580..48fd1d4b580 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/multiset_single.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/insert/multiset_single.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multiset.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/explicit_instantiation.cc
index 5d1e8710b05..5d1e8710b05 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/multiset.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/explicit_instantiation.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multiset_iterator.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc
index 3b3161a0001..3b3161a0001 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/multiset_iterator.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_neg.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc
new file mode 100644
index 00000000000..46d79ad7f9c
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/iterator_null_neg.cc
@@ -0,0 +1,36 @@
+// 2005-09-10 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 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 2, 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 COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+// libstdc++/23781
+#include <tr1/unordered_set>
+
+std::tr1::unordered_multiset<int>::iterator it3 = NULL; // { dg-error "conversion" }
+std::tr1::unordered_multiset<int>::const_iterator cit3 = NULL; // { dg-error "conversion" }
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/1.cc
index ca0194e3375..ca0194e3375 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/1.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/1.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/2.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/2.cc
index a95ddd51fc8..a95ddd51fc8 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_multiset/2.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/swap/2.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23053.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23053.cc
index 8d93c4feddc..8d93c4feddc 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23053.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23053.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23465.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23465.cc
index 35e52c2c693..35e52c2c693 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/23465.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/23465.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26127.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26127.cc
index d14a625b554..d14a625b554 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26127.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26127.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26132.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26132.cc
index 9d0076e9698..9d0076e9698 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/26132.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/26132.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-set.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc
index 5822341c85e..5822341c85e 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/capacity/29134-set.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/capacity/29134-set.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-set.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/24061-set.cc
index 202a21d1ddd..202a21d1ddd 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/erase/24061-set.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/erase/24061-set.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/set1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/find/set1.cc
index a39612a1eea..a39612a1eea 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/find/set1.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/find/set1.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-set.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/24061-set.cc
index c7d670c9f49..c7d670c9f49 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/24061-set.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/24061-set.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_range.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_range.cc
index bfa4f73b1b2..bfa4f73b1b2 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_range.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_range.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_single.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_single.cc
index ab3d68ad8b4..ab3d68ad8b4 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/insert/set_single.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/insert/set_single.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/set.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc
index ae3214f1bae..ae3214f1bae 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/instantiate/set.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/explicit_instantiation.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/set_iterator.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_neg.cc
index 40dc9c8ce31..40dc9c8ce31 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/types/set_iterator.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_neg.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc
new file mode 100644
index 00000000000..aca08c950f4
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterator_null_neg.cc
@@ -0,0 +1,36 @@
+// 2005-09-10 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 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 2, 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 COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+//
+// As a special exception, you may use this file as part of a free software
+// library without restriction. Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License. This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+// { dg-do compile }
+
+// libstdc++/23781
+#include <tr1/unordered_set>
+
+std::tr1::unordered_set<int>::iterator it4 = NULL; // { dg-error "conversion" }
+std::tr1::unordered_set<int>::const_iterator cit4 = NULL; // { dg-error "conversion" }
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/iterators_default_constructor.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterators_default_constructor.cc
index 17705aee04c..17705aee04c 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/hashtable/iterators_default_constructor.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/iterators_default_constructor.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/1.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/1.cc
index 1928c9e1bdc..1928c9e1bdc 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/1.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/1.cc
diff --git a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/2.cc b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/2.cc
index 46e859cabac..46e859cabac 100644
--- a/libstdc++-v3/testsuite/tr1/6_containers/unordered/swap/unordered_set/2.cc
+++ b/libstdc++-v3/testsuite/tr1/6_containers/unordered_set/swap/2.cc
diff --git a/libstdc++-v3/testsuite/tr1/using_namespace_std_tr1.cc b/libstdc++-v3/testsuite/tr1/using_namespace_std_tr1.cc
new file mode 100644
index 00000000000..21fc682b8f7
--- /dev/null
+++ b/libstdc++-v3/testsuite/tr1/using_namespace_std_tr1.cc
@@ -0,0 +1,26 @@
+// { dg-do compile }
+
+// Copyright (C) 2007 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 2, 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 COPYING. If not, write to the Free
+// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+// USA.
+
+#include <tr1/tuple>
+
+namespace gnu
+{
+ using namespace std::tr1;
+}