summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libstdc++-v3/ChangeLog13
-rw-r--r--libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread.cc27
-rw-r--r--libstdc++-v3/testsuite/23_containers/deque/modifiers/swap.cc5
-rw-r--r--libstdc++-v3/testsuite/23_containers/list/modifiers/swap.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/map/modifiers/swap.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/multimap/modifiers/swap.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/multiset/modifiers/swap.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/set/modifiers/swap.cc4
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector/modifiers/swap.cc4
9 files changed, 57 insertions, 12 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 1538ef3e30e..4be32a5de2d 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,16 @@
+2004-03-09 Benjamin Kosnik <bkoz@redhat.com>
+
+ * testsuite/23_containers/deque/modifiers/swap.cc: Add in bits for
+ non-weak systems.
+ * testsuite/23_containers/vector/modifiers/swap.cc: Same.
+ * testsuite/23_containers/set/modifiers/swap.cc: Same.
+ * testsuite/23_containers/multiset/modifiers/swap.cc: Same.
+ * testsuite/23_containers/multimap/modifiers/swap.cc: Same.
+ * testsuite/23_containers/map/modifiers/swap.cc: Same.
+ * testsuite/23_containers/list/modifiers/swap.cc: Same.
+
+ * testsuite/22_locale/locale/cons/12658_thread.cc: Catch exceptions.
+
2004-03-08 Benjamin Kosnik <bkoz@redhat.com>
PR c++/13658
diff --git a/libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread.cc b/libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread.cc
index 1a0534fa240..3a89d371f62 100644
--- a/libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread.cc
+++ b/libstdc++-v3/testsuite/22_locale/locale/cons/12658_thread.cc
@@ -32,20 +32,23 @@ const int max_locales = 10;
void* thread_main(void*)
{
- std::locale loc_c = std::locale::classic();
- std::locale loc[max_locales];
- for (int j = 0; j < max_locales; ++j)
- loc[j] = std::locale(j % 2 ? "en_US" : "fr_FR");
-
- for (int i = 0; i < max_loop_count; ++i)
+ try
{
- int k = i % max_locales;
- loc[k] = std::locale::global(loc[k]);
+ std::locale loc_c = std::locale::classic();
+ std::locale loc[max_locales];
+ for (int j = 0; j < max_locales; ++j)
+ loc[j] = std::locale(j % 2 ? "en_US" : "fr_FR");
- if (i % 37 == 0)
- loc[k] = loc[k].combine<std::ctype<char> >(loc_c);
+ for (int i = 0; i < max_loop_count; ++i)
+ {
+ int k = i % max_locales;
+ loc[k] = std::locale::global(loc[k]);
+
+ if (i % 37 == 0)
+ loc[k] = loc[k].combine<std::ctype<char> >(loc_c);
+ }
}
-
+ catch (...) { }
return 0;
}
@@ -53,7 +56,7 @@ int
main()
{
pthread_t tid[max_thread_count];
-
+
for (int i = 0; i < max_thread_count; i++)
pthread_create (&tid[i], NULL, thread_main, 0);
diff --git a/libstdc++-v3/testsuite/23_containers/deque/modifiers/swap.cc b/libstdc++-v3/testsuite/23_containers/deque/modifiers/swap.cc
index 12cfa748b49..43dc6867d3d 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/modifiers/swap.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/modifiers/swap.cc
@@ -54,6 +54,11 @@ void test02()
VERIFY(1 == swap_calls);
}
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+template class __gnu_cxx::__mt_alloc<T>;
+template class __gnu_cxx::__mt_alloc<T*>;
+#endif
+
// See c++/13658 for background info.
int main()
{
diff --git a/libstdc++-v3/testsuite/23_containers/list/modifiers/swap.cc b/libstdc++-v3/testsuite/23_containers/list/modifiers/swap.cc
index d20dec03679..a51d1263fb4 100644
--- a/libstdc++-v3/testsuite/23_containers/list/modifiers/swap.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/modifiers/swap.cc
@@ -54,6 +54,10 @@ void test02()
VERIFY(1 == swap_calls);
}
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+template class __gnu_cxx::__mt_alloc<std::_List_node<T> >;
+#endif
+
// See c++/13658 for background info.
int main()
{
diff --git a/libstdc++-v3/testsuite/23_containers/map/modifiers/swap.cc b/libstdc++-v3/testsuite/23_containers/map/modifiers/swap.cc
index 8fb48cb6843..1afde71dd8a 100644
--- a/libstdc++-v3/testsuite/23_containers/map/modifiers/swap.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/modifiers/swap.cc
@@ -54,6 +54,10 @@ void test02()
VERIFY(1 == swap_calls);
}
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+template class __gnu_cxx::__mt_alloc<std::_Rb_tree_node<std::pair<T const, int> > >;
+#endif
+
// See c++/13658 for background info.
int main()
{
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/modifiers/swap.cc b/libstdc++-v3/testsuite/23_containers/multimap/modifiers/swap.cc
index 34425bd4cf3..2e87dff1632 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/modifiers/swap.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/modifiers/swap.cc
@@ -54,6 +54,10 @@ void test02()
VERIFY(1 == swap_calls);
}
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+template class __gnu_cxx::__mt_alloc<std::_Rb_tree_node<std::pair<T const, int> > >;
+#endif
+
// See c++/13658 for background info.
int main()
{
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/modifiers/swap.cc b/libstdc++-v3/testsuite/23_containers/multiset/modifiers/swap.cc
index 809e1538d1c..b9632cb88ae 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/modifiers/swap.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/modifiers/swap.cc
@@ -54,6 +54,10 @@ void test02()
VERIFY(1 == swap_calls);
}
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+template class __gnu_cxx::__mt_alloc<std::_Rb_tree_node<T> >;
+#endif
+
// See c++/13658 for background info.
int main()
{
diff --git a/libstdc++-v3/testsuite/23_containers/set/modifiers/swap.cc b/libstdc++-v3/testsuite/23_containers/set/modifiers/swap.cc
index dbf3b832666..dcc69c99b3a 100644
--- a/libstdc++-v3/testsuite/23_containers/set/modifiers/swap.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/modifiers/swap.cc
@@ -54,6 +54,10 @@ void test02()
VERIFY(1 == swap_calls);
}
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+template class __gnu_cxx::__mt_alloc<std::_Rb_tree_node<T> >;
+#endif
+
// See c++/13658 for background info.
int main()
{
diff --git a/libstdc++-v3/testsuite/23_containers/vector/modifiers/swap.cc b/libstdc++-v3/testsuite/23_containers/vector/modifiers/swap.cc
index 3122aa1955b..4e49635bc22 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/modifiers/swap.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/modifiers/swap.cc
@@ -54,6 +54,10 @@ void test02()
VERIFY(1 == swap_calls);
}
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+template class __gnu_cxx::__mt_alloc<T>;
+#endif
+
// See c++/13658 for background info.
int main()
{