aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorno-author <no-author@gcc.gnu.org>2005-05-12 21:38:18 +0000
committerno-author <no-author@gcc.gnu.org>2005-05-12 21:38:18 +0000
commitaf2aeb57aa116ef83f0b4bf2fb168001f117d3a0 (patch)
tree72efd2ab7264243c568411a3f96eb17d918735e2
parent27dcdcd1e6cbd10a0324a0bb08516f9aa883a6be (diff)
This commit was manufactured by cvs2svn to create branch
'libstdcxx_so_7-branch'. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/libstdcxx_so_7-branch@99628 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libstdc++-v3/testsuite/22_locale/money_get/3.cc41
-rw-r--r--libstdc++-v3/testsuite/22_locale/money_put/3.cc41
-rw-r--r--libstdc++-v3/testsuite/22_locale/num_get/3.cc41
-rw-r--r--libstdc++-v3/testsuite/22_locale/num_get/get/char/16.cc202
-rw-r--r--libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/16.cc202
-rw-r--r--libstdc++-v3/testsuite/22_locale/num_put/3.cc41
-rw-r--r--libstdc++-v3/testsuite/23_containers/bitset/18604.cc41
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/18604.cc41
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/18604.cc41
-rw-r--r--libstdc++-v3/testsuite/23_containers/map/18604.cc41
-rw-r--r--libstdc++-v3/testsuite/23_containers/set/18604.cc42
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/18604.cc41
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/bool/21244.cc36
13 files changed, 851 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/22_locale/money_get/3.cc b/libstdc++-v3/testsuite/22_locale/money_get/3.cc
new file mode 100644
index 00000000000..d2278f28525
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/money_get/3.cc
@@ -0,0 +1,41 @@
+// 2005-04-29 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation
+//
+// 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 22.2.6.1 Template class money_get
+
+// { dg-do compile }
+
+#include <locale>
+#include <testsuite_character.h>
+
+class gnu_money_get: public std::money_get<__gnu_test::pod_uint>
+{ };
+
+// libstdc++/21238
+void test01()
+{
+ gnu_money_get facet01;
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/money_put/3.cc b/libstdc++-v3/testsuite/22_locale/money_put/3.cc
new file mode 100644
index 00000000000..700b07ebf19
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/money_put/3.cc
@@ -0,0 +1,41 @@
+// 2005-04-29 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation
+//
+// 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 22.2.6.2 Template class money_put
+
+// { dg-do compile }
+
+#include <locale>
+#include <testsuite_character.h>
+
+class gnu_money_put: public std::money_put<__gnu_test::pod_uint>
+{ };
+
+// libstdc++/21238
+void test01()
+{
+ gnu_money_put facet01;
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/num_get/3.cc b/libstdc++-v3/testsuite/22_locale/num_get/3.cc
new file mode 100644
index 00000000000..4399d682ff9
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/num_get/3.cc
@@ -0,0 +1,41 @@
+// 2005-04-29 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation
+//
+// 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 22.2.2.1 Template class num_get
+
+// { dg-do compile }
+
+#include <locale>
+#include <testsuite_character.h>
+
+class gnu_num_get: public std::num_get<__gnu_test::pod_uint>
+{ };
+
+// libstdc++/21238
+void test01()
+{
+ gnu_num_get facet01;
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/num_get/get/char/16.cc b/libstdc++-v3/testsuite/22_locale/num_get/get/char/16.cc
new file mode 100644
index 00000000000..03512714da8
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/num_get/get/char/16.cc
@@ -0,0 +1,202 @@
+// 2005-04-26 Paolo Carlini <pcarlini@suse.de>
+
+// Copyright (C) 2005 Free Software Foundation
+//
+// 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 22.2.2.1.1 num_get members
+
+#include <locale>
+#include <sstream>
+#include <limits>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+ using namespace std;
+ typedef istreambuf_iterator<char> iterator_type;
+
+ bool test __attribute__((unused)) = true;
+
+ stringstream ss;
+ const num_get<char>& ng = use_facet<num_get<char> >(ss.getloc());
+ ios_base::iostate err;
+ iterator_type end;
+
+ unsigned short us0, us1 = numeric_limits<unsigned short>::max();
+ unsigned int ui0, ui1 = numeric_limits<unsigned int>::max();
+ unsigned long ul0, ul1 = numeric_limits<unsigned long>::max();
+ long l01, l1 = numeric_limits<long>::max();
+ long l02, l2 = numeric_limits<long>::min();
+#ifdef _GLIBCXX_USE_LONG_LONG
+ unsigned long long ull0, ull1 = numeric_limits<unsigned long long>::max();
+ long long ll01, ll1 = numeric_limits<long long>::max();
+ long long ll02, ll2 = numeric_limits<long long>::min();
+#endif
+
+ const string empty;
+
+ us0 = 0;
+ ss << us1;
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, us0);
+ VERIFY( err == ios_base::eofbit );
+ VERIFY( us0 == us1 );
+
+ us0 = 0;
+ ss.clear();
+ ss.str(empty);
+ ss << us1 << '0';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, us0);
+ VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
+ VERIFY( us0 == 0 );
+
+ ui0 = 0U;
+ ss.clear();
+ ss.str(empty);
+ ss << ui1 << ' ';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, ui0);
+ VERIFY( err == ios_base::goodbit );
+ VERIFY( ui0 == ui1 );
+
+ ui0 = 0U;
+ ss.clear();
+ ss.str(empty);
+ ss << ui1 << '1';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, ui0);
+ VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
+ VERIFY( ui0 == 0U );
+
+ ul0 = 0UL;
+ ss.clear();
+ ss.str(empty);
+ ss << ul1;
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, ul0);
+ VERIFY( err == ios_base::eofbit );
+ VERIFY( ul0 == ul1 );
+
+ ul0 = 0UL;
+ ss.clear();
+ ss.str(empty);
+ ss << ul1 << '2';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, ul0);
+ VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
+ VERIFY( ul0 == 0UL );
+
+ l01 = 0L;
+ ss.clear();
+ ss.str(empty);
+ ss << l1 << ' ';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, l01);
+ VERIFY( err == ios_base::goodbit );
+ VERIFY( l01 == l1 );
+
+ l01 = 0L;
+ ss.clear();
+ ss.str(empty);
+ ss << l1 << '3';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, l01);
+ VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
+ VERIFY( l01 == 0L );
+
+ l02 = 0L;
+ ss.clear();
+ ss.str(empty);
+ ss << l2;
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, l02);
+ VERIFY( err == ios_base::eofbit );
+ VERIFY( l02 == l2 );
+
+ l02 = 0L;
+ ss.clear();
+ ss.str(empty);
+ ss << l2 << '4';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, l02);
+ VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
+ VERIFY( l02 == 0L );
+
+#ifdef _GLIBCXX_USE_LONG_LONG
+ ull0 = 0ULL;
+ ss.clear();
+ ss.str(empty);
+ ss << ull1 << ' ';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, ull0);
+ VERIFY( err == ios_base::goodbit );
+ VERIFY( ull0 == ull1 );
+
+ ull0 = 0ULL;
+ ss.clear();
+ ss.str(empty);
+ ss << ull1 << '5';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, ull0);
+ VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
+ VERIFY( ull0 == 0ULL );
+
+ ll01 = 0LL;
+ ss.clear();
+ ss.str(empty);
+ ss << ll1;
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, ll01);
+ VERIFY( err == ios_base::eofbit );
+ VERIFY( ll01 == ll1 );
+
+ ll01 = 0LL;
+ ss.clear();
+ ss.str(empty);
+ ss << ll1 << '6';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, ll01);
+ VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
+ VERIFY( ll01 == 0LL );
+
+ ll02 = 0LL;
+ ss.clear();
+ ss.str(empty);
+ ss << ll2 << ' ';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, ll02);
+ VERIFY( err == ios_base::goodbit );
+ VERIFY( ll02 == ll2 );
+
+ ll02 = 0LL;
+ ss.clear();
+ ss.str(empty);
+ ss << ll2 << '7';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, ll02);
+ VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
+ VERIFY( ll02 == 0LL );
+#endif
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/16.cc b/libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/16.cc
new file mode 100644
index 00000000000..ca774da4778
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/16.cc
@@ -0,0 +1,202 @@
+// 2005-04-26 Paolo Carlini <pcarlini@suse.de>
+
+// Copyright (C) 2005 Free Software Foundation
+//
+// 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 22.2.2.1.1 num_get members
+
+#include <locale>
+#include <sstream>
+#include <limits>
+#include <testsuite_hooks.h>
+
+void test01()
+{
+ using namespace std;
+ typedef istreambuf_iterator<wchar_t> iterator_type;
+
+ bool test __attribute__((unused)) = true;
+
+ wstringstream ss;
+ const num_get<wchar_t>& ng = use_facet<num_get<wchar_t> >(ss.getloc());
+ ios_base::iostate err;
+ iterator_type end;
+
+ unsigned short us0, us1 = numeric_limits<unsigned short>::max();
+ unsigned int ui0, ui1 = numeric_limits<unsigned int>::max();
+ unsigned long ul0, ul1 = numeric_limits<unsigned long>::max();
+ long l01, l1 = numeric_limits<long>::max();
+ long l02, l2 = numeric_limits<long>::min();
+#ifdef _GLIBCXX_USE_LONG_LONG
+ unsigned long long ull0, ull1 = numeric_limits<unsigned long long>::max();
+ long long ll01, ll1 = numeric_limits<long long>::max();
+ long long ll02, ll2 = numeric_limits<long long>::min();
+#endif
+
+ const wstring empty;
+
+ us0 = 0;
+ ss << us1;
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, us0);
+ VERIFY( err == ios_base::eofbit );
+ VERIFY( us0 == us1 );
+
+ us0 = 0;
+ ss.clear();
+ ss.str(empty);
+ ss << us1 << L'0';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, us0);
+ VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
+ VERIFY( us0 == 0 );
+
+ ui0 = 0U;
+ ss.clear();
+ ss.str(empty);
+ ss << ui1 << ' ';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, ui0);
+ VERIFY( err == ios_base::goodbit );
+ VERIFY( ui0 == ui1 );
+
+ ui0 = 0U;
+ ss.clear();
+ ss.str(empty);
+ ss << ui1 << L'1';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, ui0);
+ VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
+ VERIFY( ui0 == 0U );
+
+ ul0 = 0UL;
+ ss.clear();
+ ss.str(empty);
+ ss << ul1;
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, ul0);
+ VERIFY( err == ios_base::eofbit );
+ VERIFY( ul0 == ul1 );
+
+ ul0 = 0UL;
+ ss.clear();
+ ss.str(empty);
+ ss << ul1 << L'2';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, ul0);
+ VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
+ VERIFY( ul0 == 0UL );
+
+ l01 = 0L;
+ ss.clear();
+ ss.str(empty);
+ ss << l1 << L' ';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, l01);
+ VERIFY( err == ios_base::goodbit );
+ VERIFY( l01 == l1 );
+
+ l01 = 0L;
+ ss.clear();
+ ss.str(empty);
+ ss << l1 << L'3';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, l01);
+ VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
+ VERIFY( l01 == 0L );
+
+ l02 = 0L;
+ ss.clear();
+ ss.str(empty);
+ ss << l2;
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, l02);
+ VERIFY( err == ios_base::eofbit );
+ VERIFY( l02 == l2 );
+
+ l02 = 0L;
+ ss.clear();
+ ss.str(empty);
+ ss << l2 << L'4';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, l02);
+ VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
+ VERIFY( l02 == 0L );
+
+#ifdef _GLIBCXX_USE_LONG_LONG
+ ull0 = 0ULL;
+ ss.clear();
+ ss.str(empty);
+ ss << ull1 << L' ';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, ull0);
+ VERIFY( err == ios_base::goodbit );
+ VERIFY( ull0 == ull1 );
+
+ ull0 = 0ULL;
+ ss.clear();
+ ss.str(empty);
+ ss << ull1 << L'5';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, ull0);
+ VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
+ VERIFY( ull0 == 0ULL );
+
+ ll01 = 0LL;
+ ss.clear();
+ ss.str(empty);
+ ss << ll1;
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, ll01);
+ VERIFY( err == ios_base::eofbit );
+ VERIFY( ll01 == ll1 );
+
+ ll01 = 0LL;
+ ss.clear();
+ ss.str(empty);
+ ss << ll1 << L'6';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, ll01);
+ VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
+ VERIFY( ll01 == 0LL );
+
+ ll02 = 0LL;
+ ss.clear();
+ ss.str(empty);
+ ss << ll2 << L' ';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, ll02);
+ VERIFY( err == ios_base::goodbit );
+ VERIFY( ll02 == ll2 );
+
+ ll02 = 0LL;
+ ss.clear();
+ ss.str(empty);
+ ss << ll2 << L'7';
+ err = ios_base::goodbit;
+ end = ng.get(ss.rdbuf(), 0, ss, err, ll02);
+ VERIFY( err == (ios_base::failbit | ios_base::eofbit) );
+ VERIFY( ll02 == 0LL );
+#endif
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/22_locale/num_put/3.cc b/libstdc++-v3/testsuite/22_locale/num_put/3.cc
new file mode 100644
index 00000000000..799294e4aa2
--- /dev/null
+++ b/libstdc++-v3/testsuite/22_locale/num_put/3.cc
@@ -0,0 +1,41 @@
+// 2005-04-29 Paolo Carlini <pcarlini@suse.de>
+//
+// Copyright (C) 2005 Free Software Foundation
+//
+// 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// 22.2.2.2 Template class num_put
+
+// { dg-do compile }
+
+#include <locale>
+#include <testsuite_character.h>
+
+class gnu_num_put: public std::num_put<__gnu_test::pod_uint>
+{ };
+
+// libstdc++/21238
+void test01()
+{
+ gnu_num_put facet01;
+}
+
+int main()
+{
+ test01();
+ return 0;
+}
diff --git a/libstdc++-v3/testsuite/23_containers/bitset/18604.cc b/libstdc++-v3/testsuite/23_containers/bitset/18604.cc
new file mode 100644
index 00000000000..bc3287a4a0e
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/bitset/18604.cc
@@ -0,0 +1,41 @@
+// 2005-05-09 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// { dg-options "-D_GLIBCXX_DEBUG" }
+// { dg-do compile }
+
+// libstdc++/18604
+struct less;
+struct allocator;
+struct pair;
+struct binary_function;
+struct iterator;
+struct iterator_traits;
+struct bidirectional_iterator_tag;
+struct forward_iterator_tag;
+struct input_iterator_tag;
+struct random_access_iterator_tag;
+struct ios_base;
+struct basic_string;
+struct basic_istream;
+struct basic_ostream;
+struct char_traits;
+
+#include <bitset>
diff --git a/libstdc++-v3/testsuite/23_containers/deque/18604.cc b/libstdc++-v3/testsuite/23_containers/deque/18604.cc
new file mode 100644
index 00000000000..f9ff1f69890
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/deque/18604.cc
@@ -0,0 +1,41 @@
+// 2005-05-09 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// { dg-options "-D_GLIBCXX_DEBUG" }
+// { dg-do compile }
+
+// libstdc++/18604
+struct less;
+struct allocator;
+struct pair;
+struct binary_function;
+struct iterator;
+struct iterator_traits;
+struct bidirectional_iterator_tag;
+struct forward_iterator_tag;
+struct input_iterator_tag;
+struct random_access_iterator_tag;
+struct ios_base;
+struct basic_string;
+struct basic_istream;
+struct basic_ostream;
+struct char_traits;
+
+#include <deque>
diff --git a/libstdc++-v3/testsuite/23_containers/list/18604.cc b/libstdc++-v3/testsuite/23_containers/list/18604.cc
new file mode 100644
index 00000000000..66519e5a92d
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/list/18604.cc
@@ -0,0 +1,41 @@
+// 2005-05-09 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// { dg-options "-D_GLIBCXX_DEBUG" }
+// { dg-do compile }
+
+// libstdc++/18604
+struct less;
+struct allocator;
+struct pair;
+struct binary_function;
+struct iterator;
+struct iterator_traits;
+struct bidirectional_iterator_tag;
+struct forward_iterator_tag;
+struct input_iterator_tag;
+struct random_access_iterator_tag;
+struct ios_base;
+struct basic_string;
+struct basic_istream;
+struct basic_ostream;
+struct char_traits;
+
+#include <list>
diff --git a/libstdc++-v3/testsuite/23_containers/map/18604.cc b/libstdc++-v3/testsuite/23_containers/map/18604.cc
new file mode 100644
index 00000000000..fb1d3bdd23b
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/map/18604.cc
@@ -0,0 +1,41 @@
+// 2005-05-09 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// { dg-options "-D_GLIBCXX_DEBUG" }
+// { dg-do compile }
+
+// libstdc++/18604
+struct less;
+struct allocator;
+struct pair;
+struct binary_function;
+struct iterator;
+struct iterator_traits;
+struct bidirectional_iterator_tag;
+struct forward_iterator_tag;
+struct input_iterator_tag;
+struct random_access_iterator_tag;
+struct ios_base;
+struct basic_string;
+struct basic_istream;
+struct basic_ostream;
+struct char_traits;
+
+#include <map>
diff --git a/libstdc++-v3/testsuite/23_containers/set/18604.cc b/libstdc++-v3/testsuite/23_containers/set/18604.cc
new file mode 100644
index 00000000000..57a96271bc1
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/set/18604.cc
@@ -0,0 +1,42 @@
+// 2005-05-09 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// { dg-options "-D_GLIBCXX_DEBUG" }
+// { dg-do compile }
+
+// libstdc++/18604
+struct less;
+struct allocator;
+struct pair;
+struct binary_function;
+struct iterator;
+struct iterator_traits;
+struct bidirectional_iterator_tag;
+struct forward_iterator_tag;
+struct input_iterator_tag;
+struct random_access_iterator_tag;
+struct ios_base;
+struct basic_string;
+struct basic_istream;
+struct basic_ostream;
+struct char_traits;
+
+#include <set>
+
diff --git a/libstdc++-v3/testsuite/23_containers/vector/18604.cc b/libstdc++-v3/testsuite/23_containers/vector/18604.cc
new file mode 100644
index 00000000000..d22ee6f7e43
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/vector/18604.cc
@@ -0,0 +1,41 @@
+// 2005-05-09 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+// { dg-options "-D_GLIBCXX_DEBUG" }
+// { dg-do compile }
+
+// libstdc++/18604
+struct less;
+struct allocator;
+struct pair;
+struct binary_function;
+struct iterator;
+struct iterator_traits;
+struct bidirectional_iterator_tag;
+struct forward_iterator_tag;
+struct input_iterator_tag;
+struct random_access_iterator_tag;
+struct ios_base;
+struct basic_string;
+struct basic_istream;
+struct basic_ostream;
+struct char_traits;
+
+#include <vector>
diff --git a/libstdc++-v3/testsuite/23_containers/vector/bool/21244.cc b/libstdc++-v3/testsuite/23_containers/vector/bool/21244.cc
new file mode 100644
index 00000000000..d546d306146
--- /dev/null
+++ b/libstdc++-v3/testsuite/23_containers/vector/bool/21244.cc
@@ -0,0 +1,36 @@
+// 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+// USA.
+
+#include <vector>
+
+// { dg-do compile }
+
+class Foo
+{
+};
+
+template<class T> Foo operator/(const Foo& arg1, T arg2)
+{
+ return Foo();
+}
+
+// libstdc++/21244
+void foo()
+{
+ std::vector<bool> bar(1);
+}