2004-03-04 Benjamin Kosnik <bkoz@redhat.com>
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 4 Mar 2004 18:11:08 +0000 (18:11 +0000)
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 4 Mar 2004 18:11:08 +0000 (18:11 +0000)
* testsuite/20_util/allocator/1.cc: Provide explicit
instantiations for non-weak systems.
* testsuite/20_util/binders.cc: Same.
* testsuite/20_util/allocator/8230.cc: Same.
* testsuite/20_util/allocator/10378.cc: Same.
* testsuite/22_locale/ctype/is/wchar_t/2.cc: Same.
* testsuite/22_locale/ctype/is/char/2.cc: Same.
* testsuite/thread/pthread7-rope.cc: Same.
* testsuite/thread/pthread6.cc: Same.
* testsuite/thread/pthread5.cc: Same.
* testsuite/thread/pthread4.cc: Same.
* testsuite/thread/pthread1.cc: Same.
* testsuite/ext/rope.cc: Same.
* testsuite/ext/hash_set.cc: Same.
* testsuite/ext/hash_map.cc: Same.
* testsuite/ext/concept_checks.cc: Same.
* testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Same.
* testsuite/25_algorithms/unique/2.cc: Same.
* testsuite/25_algorithms/unique/1.cc: Same.
* testsuite/25_algorithms/rotate.cc: Same.
* testsuite/25_algorithms/min_max.cc: Same.
* testsuite/25_algorithms/equal.cc: Same.
* testsuite/24_iterators/rel_ops.cc: Same.
* testsuite/24_iterators/iterator.cc: Same.
* testsuite/24_iterators/insert_iterator.cc: Same.
* testsuite/24_iterators/front_insert_iterator.cc: Same.
* testsuite/24_iterators/back_insert_iterator.cc: Same.
* testsuite/23_containers/vector/resize/1.cc: Same.
* testsuite/23_containers/vector/modifiers/2.cc: Same.
* testsuite/23_containers/vector/modifiers/1.cc: Same.
* testsuite/23_containers/vector/invalidation/4.cc: Same.
* testsuite/23_containers/vector/invalidation/3.cc: Same.
* testsuite/23_containers/vector/invalidation/2.cc: Same.
* testsuite/23_containers/vector/invalidation/1.cc: Same.
* testsuite/23_containers/vector/element_access/1.cc: Same.
* testsuite/23_containers/vector/cons/6513.cc: Same.
* testsuite/23_containers/vector/cons/3.cc: Same.
* testsuite/23_containers/vector/cons/2.cc: Same.
* testsuite/23_containers/vector/cons/1.cc: Same.
* testsuite/23_containers/vector/capacity/8230.cc: Same.
* testsuite/23_containers/vector/capacity/1.cc: Same.
* testsuite/23_containers/vector/bool/6886.cc: Same.
* testsuite/23_containers/stack/members/7158.cc: Same.
* testsuite/23_containers/set/invalidation/2.cc: Same.
* testsuite/23_containers/set/invalidation/1.cc: Same.
* testsuite/23_containers/queue/members/7157.cc: Same.
* testsuite/23_containers/priority_queue/members/7161.cc: Same.
* testsuite/23_containers/multiset/invalidation/2.cc: Same.
* testsuite/23_containers/multiset/invalidation/2.cc: Same.
* testsuite/23_containers/multiset/insert/1.cc: Same.
* testsuite/23_containers/multimap/invalidation/2.cc: Same.
* testsuite/23_containers/multimap/invalidation/2.cc: Same.
* testsuite/23_containers/map/operators/1.cc: Same.
* testsuite/23_containers/map/invalidation/2.cc: Same.
* testsuite/23_containers/map/invalidation/1.cc: Same.
* testsuite/23_containers/map/insert/1.cc: Same.
* testsuite/23_containers/list/operators/4.cc: Same.
* testsuite/23_containers/list/operators/3.cc: Same.
* testsuite/23_containers/list/operators/2.cc: Same.
* testsuite/23_containers/list/operators/1.cc: Same.
* testsuite/23_containers/list/modifiers/3.cc: Same.
* testsuite/23_containers/list/modifiers/2.cc: Same.
* testsuite/23_containers/list/modifiers/1.cc: Same.
* testsuite/23_containers/list/invalidation/4.cc: Same.
* testsuite/23_containers/list/invalidation/3.cc: Same.
* testsuite/23_containers/list/invalidation/2.cc: Same.
* testsuite/23_containers/list/invalidation/1.cc: Same.
* testsuite/23_containers/list/cons/9.cc: Same.
* testsuite/23_containers/list/cons/8.cc: Same.
* testsuite/23_containers/list/cons/7.cc: Same.
* testsuite/23_containers/list/cons/6.cc: Same.
* testsuite/23_containers/list/cons/5.cc: Same.
* testsuite/23_containers/list/cons/4.cc: Same.
* testsuite/23_containers/list/cons/3.cc: Same.
* testsuite/23_containers/list/cons/2.cc: Same.
* testsuite/23_containers/list/cons/1.cc: Same.
* testsuite/23_containers/list/capacity/1.cc: Same.
* testsuite/23_containers/deque/operators/1.cc: Same.
* testsuite/23_containers/deque/invalidation/4.cc: Same.
* testsuite/23_containers/deque/invalidation/3.cc: Same.
* testsuite/23_containers/deque/invalidation/2.cc: Same.
* testsuite/23_containers/deque/invalidation/1.cc: Same.
* testsuite/23_containers/deque/cons/2.cc: Same.
* testsuite/23_containers/deque/cons/1.cc: Same.

* src/allocator.cc: Add char, wchar_t instantiations
to match extern template declarations in memory.h.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@78922 138bc75d-0d04-0410-961f-82ee72b054a4

87 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/src/allocator.cc
libstdc++-v3/testsuite/20_util/allocator/1.cc
libstdc++-v3/testsuite/20_util/allocator/10378.cc
libstdc++-v3/testsuite/20_util/allocator/8230.cc
libstdc++-v3/testsuite/20_util/binders.cc
libstdc++-v3/testsuite/22_locale/ctype/is/char/2.cc
libstdc++-v3/testsuite/22_locale/ctype/is/wchar_t/2.cc
libstdc++-v3/testsuite/22_locale/ctype/widen/char/1.cc
libstdc++-v3/testsuite/23_containers/deque/cons/1.cc
libstdc++-v3/testsuite/23_containers/deque/cons/2.cc
libstdc++-v3/testsuite/23_containers/deque/invalidation/1.cc
libstdc++-v3/testsuite/23_containers/deque/invalidation/2.cc
libstdc++-v3/testsuite/23_containers/deque/invalidation/3.cc
libstdc++-v3/testsuite/23_containers/deque/invalidation/4.cc
libstdc++-v3/testsuite/23_containers/deque/operators/1.cc
libstdc++-v3/testsuite/23_containers/list/1.cc
libstdc++-v3/testsuite/23_containers/list/capacity/1.cc
libstdc++-v3/testsuite/23_containers/list/cons/1.cc
libstdc++-v3/testsuite/23_containers/list/cons/2.cc
libstdc++-v3/testsuite/23_containers/list/cons/3.cc
libstdc++-v3/testsuite/23_containers/list/cons/4.cc
libstdc++-v3/testsuite/23_containers/list/cons/5.cc
libstdc++-v3/testsuite/23_containers/list/cons/6.cc
libstdc++-v3/testsuite/23_containers/list/cons/7.cc
libstdc++-v3/testsuite/23_containers/list/cons/8.cc
libstdc++-v3/testsuite/23_containers/list/cons/9.cc
libstdc++-v3/testsuite/23_containers/list/invalidation/1.cc
libstdc++-v3/testsuite/23_containers/list/invalidation/2.cc
libstdc++-v3/testsuite/23_containers/list/invalidation/3.cc
libstdc++-v3/testsuite/23_containers/list/invalidation/4.cc
libstdc++-v3/testsuite/23_containers/list/modifiers/1.cc
libstdc++-v3/testsuite/23_containers/list/modifiers/2.cc
libstdc++-v3/testsuite/23_containers/list/modifiers/3.cc
libstdc++-v3/testsuite/23_containers/list/operators/1.cc
libstdc++-v3/testsuite/23_containers/list/operators/2.cc
libstdc++-v3/testsuite/23_containers/list/operators/3.cc
libstdc++-v3/testsuite/23_containers/list/operators/4.cc
libstdc++-v3/testsuite/23_containers/map/insert/1.cc
libstdc++-v3/testsuite/23_containers/map/invalidation/1.cc
libstdc++-v3/testsuite/23_containers/map/invalidation/2.cc
libstdc++-v3/testsuite/23_containers/map/operators/1.cc
libstdc++-v3/testsuite/23_containers/multimap/invalidation/1.cc
libstdc++-v3/testsuite/23_containers/multimap/invalidation/2.cc
libstdc++-v3/testsuite/23_containers/multiset/insert/1.cc
libstdc++-v3/testsuite/23_containers/multiset/invalidation/1.cc
libstdc++-v3/testsuite/23_containers/multiset/invalidation/2.cc
libstdc++-v3/testsuite/23_containers/priority_queue/members/7161.cc
libstdc++-v3/testsuite/23_containers/queue/members/7157.cc
libstdc++-v3/testsuite/23_containers/set/invalidation/1.cc
libstdc++-v3/testsuite/23_containers/set/invalidation/2.cc
libstdc++-v3/testsuite/23_containers/stack/members/7158.cc
libstdc++-v3/testsuite/23_containers/vector/bool/6886.cc
libstdc++-v3/testsuite/23_containers/vector/capacity/1.cc
libstdc++-v3/testsuite/23_containers/vector/capacity/8230.cc
libstdc++-v3/testsuite/23_containers/vector/cons/1.cc
libstdc++-v3/testsuite/23_containers/vector/cons/2.cc
libstdc++-v3/testsuite/23_containers/vector/cons/3.cc
libstdc++-v3/testsuite/23_containers/vector/cons/6513.cc
libstdc++-v3/testsuite/23_containers/vector/element_access/1.cc
libstdc++-v3/testsuite/23_containers/vector/invalidation/1.cc
libstdc++-v3/testsuite/23_containers/vector/invalidation/2.cc
libstdc++-v3/testsuite/23_containers/vector/invalidation/3.cc
libstdc++-v3/testsuite/23_containers/vector/invalidation/4.cc
libstdc++-v3/testsuite/23_containers/vector/modifiers/1.cc
libstdc++-v3/testsuite/23_containers/vector/modifiers/2.cc
libstdc++-v3/testsuite/23_containers/vector/resize/1.cc
libstdc++-v3/testsuite/24_iterators/back_insert_iterator.cc
libstdc++-v3/testsuite/24_iterators/front_insert_iterator.cc
libstdc++-v3/testsuite/24_iterators/insert_iterator.cc
libstdc++-v3/testsuite/24_iterators/iterator.cc
libstdc++-v3/testsuite/24_iterators/rel_ops.cc
libstdc++-v3/testsuite/25_algorithms/equal.cc
libstdc++-v3/testsuite/25_algorithms/min_max.cc
libstdc++-v3/testsuite/25_algorithms/rotate.cc
libstdc++-v3/testsuite/25_algorithms/unique/1.cc
libstdc++-v3/testsuite/25_algorithms/unique/2.cc
libstdc++-v3/testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc
libstdc++-v3/testsuite/ext/concept_checks.cc
libstdc++-v3/testsuite/ext/hash_map.cc
libstdc++-v3/testsuite/ext/hash_set.cc
libstdc++-v3/testsuite/ext/rope.cc
libstdc++-v3/testsuite/thread/pthread1.cc
libstdc++-v3/testsuite/thread/pthread4.cc
libstdc++-v3/testsuite/thread/pthread5.cc
libstdc++-v3/testsuite/thread/pthread6.cc
libstdc++-v3/testsuite/thread/pthread7-rope.cc

index ad452c7..2aa51bf 100644 (file)
@@ -1,3 +1,93 @@
+2004-03-04  Benjamin Kosnik  <bkoz@redhat.com>
+
+       * testsuite/20_util/allocator/1.cc: Provide explicit
+       instantiations for non-weak systems.
+       * testsuite/20_util/binders.cc: Same.
+       * testsuite/20_util/allocator/8230.cc: Same.
+       * testsuite/20_util/allocator/10378.cc: Same.
+       * testsuite/22_locale/ctype/is/wchar_t/2.cc: Same.
+       * testsuite/22_locale/ctype/is/char/2.cc: Same.
+       * testsuite/thread/pthread7-rope.cc: Same.
+       * testsuite/thread/pthread6.cc: Same.   
+       * testsuite/thread/pthread5.cc: Same.           
+       * testsuite/thread/pthread4.cc: Same.   
+       * testsuite/thread/pthread1.cc: Same.
+       * testsuite/ext/rope.cc: Same.
+       * testsuite/ext/hash_set.cc: Same.
+       * testsuite/ext/hash_map.cc: Same.      
+       * testsuite/ext/concept_checks.cc: Same.
+       * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Same.
+       * testsuite/25_algorithms/unique/2.cc: Same.
+       * testsuite/25_algorithms/unique/1.cc: Same.
+       * testsuite/25_algorithms/rotate.cc: Same.
+       * testsuite/25_algorithms/min_max.cc: Same.
+       * testsuite/25_algorithms/equal.cc: Same.       
+       * testsuite/24_iterators/rel_ops.cc: Same.
+       * testsuite/24_iterators/iterator.cc: Same.
+       * testsuite/24_iterators/insert_iterator.cc: Same.
+       * testsuite/24_iterators/front_insert_iterator.cc: Same.
+       * testsuite/24_iterators/back_insert_iterator.cc: Same.
+       * testsuite/23_containers/vector/resize/1.cc: Same.
+       * testsuite/23_containers/vector/modifiers/2.cc: Same.
+       * testsuite/23_containers/vector/modifiers/1.cc: Same.
+       * testsuite/23_containers/vector/invalidation/4.cc: Same.
+       * testsuite/23_containers/vector/invalidation/3.cc: Same.
+       * testsuite/23_containers/vector/invalidation/2.cc: Same.       
+       * testsuite/23_containers/vector/invalidation/1.cc: Same.
+       * testsuite/23_containers/vector/element_access/1.cc: Same.
+       * testsuite/23_containers/vector/cons/6513.cc: Same.
+       * testsuite/23_containers/vector/cons/3.cc: Same.
+       * testsuite/23_containers/vector/cons/2.cc: Same.
+       * testsuite/23_containers/vector/cons/1.cc: Same.
+       * testsuite/23_containers/vector/capacity/8230.cc: Same.
+       * testsuite/23_containers/vector/capacity/1.cc: Same.
+       * testsuite/23_containers/vector/bool/6886.cc: Same.
+       * testsuite/23_containers/stack/members/7158.cc: Same.
+       * testsuite/23_containers/set/invalidation/2.cc: Same.
+       * testsuite/23_containers/set/invalidation/1.cc: Same.
+       * testsuite/23_containers/queue/members/7157.cc: Same.
+       * testsuite/23_containers/priority_queue/members/7161.cc: Same.
+       * testsuite/23_containers/multiset/invalidation/2.cc: Same.
+       * testsuite/23_containers/multiset/invalidation/2.cc: Same.     
+       * testsuite/23_containers/multiset/insert/1.cc: Same.
+       * testsuite/23_containers/multimap/invalidation/2.cc: Same.
+       * testsuite/23_containers/multimap/invalidation/2.cc: Same.
+       * testsuite/23_containers/map/operators/1.cc: Same.
+       * testsuite/23_containers/map/invalidation/2.cc: Same.
+       * testsuite/23_containers/map/invalidation/1.cc: Same.
+       * testsuite/23_containers/map/insert/1.cc: Same.
+       * testsuite/23_containers/list/operators/4.cc: Same.
+       * testsuite/23_containers/list/operators/3.cc: Same.
+       * testsuite/23_containers/list/operators/2.cc: Same.
+       * testsuite/23_containers/list/operators/1.cc: Same.
+       * testsuite/23_containers/list/modifiers/3.cc: Same.
+       * testsuite/23_containers/list/modifiers/2.cc: Same.
+       * testsuite/23_containers/list/modifiers/1.cc: Same.
+       * testsuite/23_containers/list/invalidation/4.cc: Same.
+       * testsuite/23_containers/list/invalidation/3.cc: Same.
+       * testsuite/23_containers/list/invalidation/2.cc: Same.
+       * testsuite/23_containers/list/invalidation/1.cc: Same. 
+       * testsuite/23_containers/list/cons/9.cc: Same.
+       * testsuite/23_containers/list/cons/8.cc: Same.
+       * testsuite/23_containers/list/cons/7.cc: Same.
+       * testsuite/23_containers/list/cons/6.cc: Same.
+       * testsuite/23_containers/list/cons/5.cc: Same.
+       * testsuite/23_containers/list/cons/4.cc: Same.
+       * testsuite/23_containers/list/cons/3.cc: Same.
+       * testsuite/23_containers/list/cons/2.cc: Same.
+       * testsuite/23_containers/list/cons/1.cc: Same.
+       * testsuite/23_containers/list/capacity/1.cc: Same.
+       * testsuite/23_containers/deque/operators/1.cc: Same.
+       * testsuite/23_containers/deque/invalidation/4.cc: Same.
+       * testsuite/23_containers/deque/invalidation/3.cc: Same.
+       * testsuite/23_containers/deque/invalidation/2.cc: Same.
+       * testsuite/23_containers/deque/invalidation/1.cc: Same.
+       * testsuite/23_containers/deque/cons/2.cc: Same.
+       * testsuite/23_containers/deque/cons/1.cc: Same.
+
+       * src/allocator.cc: Add char, wchar_t instantiations
+       to match extern template declarations in memory.h.
+
 2004-03-03  Paolo Carlini  <pcarlini@suse.de>
 
        * include/bits/locale_facets.tcc (money_put<>::_M_insert):
index 5e37d87..9f8d2ab 100644 (file)
@@ -41,6 +41,7 @@
 namespace __gnu_cxx
 {
   template class __mt_alloc<char>;
+  template class __mt_alloc<wchar_t>;
 
   // Static members of __pool_alloc.
   template class __pool_alloc<true, 0>;
index 8d35be3..d34c8da 100644 (file)
@@ -43,12 +43,17 @@ void operator delete(void *v) throw()
   return std::free(v);
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<gnu>;
+#endif
+
 void test01()
 {
   bool test __attribute__((unused)) = true;
   std::allocator<gnu> obj;
 
-  // XXX These should work for various size allocation and
+  // NB: These should work for various size allocation and
   // deallocations.  Currently, they only work as expected for sizes >
   // _MAX_BYTES as defined in stl_alloc.h, which happes to be 128. 
   gnu* pobj = obj.allocate(256);
@@ -63,3 +68,4 @@ int main()
   test01();
   return 0;
 }
+
index 88193b5..2ac77ea 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004 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
@@ -39,6 +39,11 @@ void test01()
   uniset.push_back(Bob());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<Bob> >;
+#endif
+
 int main()
 {
   test01();
index 7747dd7..95b6cbe 100644 (file)
@@ -47,6 +47,11 @@ void test02()
   VERIFY( test );
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int>;
+#endif
+
 int main()
 {
   test02();
index a12d3b6..28de474 100644 (file)
@@ -1,6 +1,6 @@
 // 2001-06-11  Benjamin Kosnik  <bkoz@redhat.com>
 
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003, 2004 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
@@ -43,6 +43,10 @@ void test01()
           std::bind2nd(std::mem_fun_ref(&Elem::modify), 42));
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<Elem>;
+#endif
 
 int main()
 {
index 0211607..4192b80 100644 (file)
@@ -1,5 +1,5 @@
 // { dg-do run { xfail *-*-![linux]* } }
-// Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2002, 2003, 2004 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
@@ -38,7 +38,7 @@ typedef char char_type;
 void test02()
 {
   using namespace std;
-  typedef ctype_base::mask     mask;
+  typedef ctype_base::mask     mask;
   typedef vector<mask>                 vector_type;
 
   bool test __attribute__((unused)) = true;
@@ -97,6 +97,10 @@ void test02()
   VERIFY( v_c != v_de );
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::ctype_base::mask>;
+#endif
 int main() 
 {
   test02();
index df02878..f5a7d6d 100644 (file)
@@ -1,5 +1,5 @@
 // { dg-do run { xfail *-*-![linux]* } }
-// Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2002, 2003, 2004 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
@@ -97,6 +97,11 @@ void test02()
   VERIFY( v_c != v_de );
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::ctype_base::mask>;
+#endif
+
 int main() 
 {
   test02();
index e4ac43a..4c051c4 100644 (file)
@@ -1,6 +1,6 @@
 // 2002-05-24 bkoz
 
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2004 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
index 566461b..5a32c78 100644 (file)
@@ -1,6 +1,6 @@
 // 2001-12-27 pme
 //
-// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004 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
@@ -42,6 +42,11 @@ test01()
   assert_count (0);
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<__gnu_test::counter>;
+template class __gnu_cxx::__mt_alloc<__gnu_test::counter*>;
+#endif
 
 int main()
 {
index e0e7108..64365b0 100644 (file)
@@ -1,6 +1,6 @@
 // 2001-12-27 pme
 //
-// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004 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
@@ -499,6 +499,13 @@ test_copy_ctor_exception_safety()
   // teardown
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int>;
+template class __gnu_cxx::__mt_alloc<int*>;
+template class __gnu_cxx::__mt_alloc<__gnu_test::copy_tracker>;
+template class __gnu_cxx::__mt_alloc<__gnu_test::copy_tracker*>;
+#endif
 
 int main()
 {
index 4529b28..506f0e9 100644 (file)
@@ -1,6 +1,6 @@
 // Deque iterator invalidation tests
 
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004 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
@@ -46,8 +46,14 @@ void test01()
   VERIFY(i._M_singular());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int*>;
+template class __gnu_cxx::__mt_alloc<int>;
+#endif
+
 int main()
 {
   test01();
-  return !test;
+  return 0;
 }
index 106c118..9aa1e57 100644 (file)
@@ -1,6 +1,6 @@
 // Deque iterator invalidation tests
 
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004 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
@@ -46,8 +46,14 @@ void test02()
   VERIFY(before._M_singular());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int*>;
+template class __gnu_cxx::__mt_alloc<int>;
+#endif
+
 int main()
 {
   test02();
-  return !test;
+  return 0;
 }
index 60103c1..fe37498 100644 (file)
@@ -1,6 +1,6 @@
 // Deque iterator invalidation tests
 
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004 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
@@ -42,6 +42,7 @@ void test03()
   // Insert multiple copies
   before = v.begin() + 6;
   at = before + 1;
+
   v.insert(at, 3, 42);
   VERIFY(before._M_singular());
   VERIFY(at._M_singular());
@@ -55,8 +56,14 @@ void test03()
   VERIFY(at._M_singular());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int*>;
+template class __gnu_cxx::__mt_alloc<int>;
+#endif
+
 int main()
 {
   test03();
-  return !test;
+  return 0;
 }
index c8a8b88..21ba372 100644 (file)
@@ -68,6 +68,12 @@ void test04()
   VERIFY(before._M_singular());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int*>;
+template class __gnu_cxx::__mt_alloc<int>;
+#endif
+
 int main()
 {
   test04();
index 4b7aac9..20cdfac 100644 (file)
@@ -1,6 +1,6 @@
 // 2002-05-18  Paolo Carlini  <pcarlini@unitus.it>
 
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2004 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
@@ -77,6 +77,12 @@ void test02()
   VERIFY( constend - beg > 0 );
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int*>;
+template class __gnu_cxx::__mt_alloc<int>;
+#endif
+
 int main()
 {
   test01();
index 187f380..45aa95e 100644 (file)
@@ -1,4 +1,5 @@
-// Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+// 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
index 609b92c..b19a7b1 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004 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
@@ -59,6 +59,11 @@ test01()
   VERIFY(list0101.size() == 0);
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int
 main()
 {
index 1d2f566..92a5992 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004 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
@@ -71,9 +71,13 @@ test01()
   // allocator checks?
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<A<B> > >;
+#endif
+
 int main()
 {
   test01();
   return 0;
 }
-// vi:set sw=2 ts=2:
index 090c7f3..b837d85 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004 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
@@ -75,9 +75,15 @@ test02()
   VERIFY(list0203.size() == LIST_SIZE);
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<A<B> > >;
+template class __gnu_cxx::__mt_alloc<int>;
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int main()
 {
   test02(); 
   return 0;
 }
-// vi:set sw=2 ts=2:
index 5115dc0..61e6aef 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004 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
@@ -52,6 +52,11 @@ test02D()
   VERIFY(list0204.size() == LIST_SIZE);
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<C> >;
+#endif
+
 int main()
 {
   test02D(); 
index 68b8d43..4b84342 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004 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
@@ -58,9 +58,14 @@ test03()
   VERIFY(list0302.size() == N);
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int main()
 {
   test03();
   return 0;
 }
-// vi:set sw=2 ts=2:
+
index 7bc925a..89e5308 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004 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
@@ -49,9 +49,14 @@ test04()
   VERIFY(list0401.size() == N);
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int main()
 {
   test04();
   return 0;
 }
-// vi:set sw=2 ts=2:
+
index 9cdec8b..a302c59 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004 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
@@ -62,9 +62,14 @@ test05()
   VERIFY(list0501.size() == M);
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int main()
 {
   test05();
   return 0;
 }
-// vi:set sw=2 ts=2:
+
index 650c82b..16a8f90 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004 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
@@ -63,9 +63,14 @@ test06()
   VERIFY(list0601.size() == SMALL_LIST_SIZE);
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int main()
 {
   test06();
   return 0;
 }
-// vi:set sw=2 ts=2:
+
index 66b59a0..1d70d3c 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004 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
@@ -56,9 +56,14 @@ test06D()
   VERIFY(list0604.size() == LIST_SIZE);
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<C> >;
+#endif
+
 int main()
 {
   test06D();
   return 0;
 }
-// vi:set sw=2 ts=2:
+
index 1f26213..21a1e58 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004 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
@@ -56,6 +56,11 @@ test07()
   VERIFY(list0702 == list0701);
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int main()
 {
   test07();
index 86d9031..21e0432 100644 (file)
@@ -1,6 +1,6 @@
 // List iterator invalidation tests
 
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004 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
@@ -53,6 +53,11 @@ void test01()
   VERIFY(!finish._M_dereferenceable() && !finish._M_singular());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int main()
 {
   test01();
index 117aa61..4bfa5ce 100644 (file)
@@ -1,6 +1,6 @@
 // List iterator invalidation tests
 
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004 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
@@ -48,6 +48,11 @@ void test02()
   VERIFY(!finish._M_singular() && !finish._M_dereferenceable());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int main()
 {
   test02();
index 59af360..31da208 100644 (file)
@@ -1,6 +1,6 @@
 // List iterator invalidation tests
 
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004 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
@@ -71,6 +71,11 @@ void test03()
   VERIFY(!finish._M_singular() && !finish._M_dereferenceable());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int main()
 {
   test03();
index 90f9970..c452983 100644 (file)
@@ -1,6 +1,6 @@
 // List iterator invalidation tests
 
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004 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
@@ -48,6 +48,11 @@ void test04()
   VERIFY(after2._M_attached_to(&l2));
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int main()
 {
   test04();
index 2e75dca..5d95467 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003, 2004 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
@@ -112,9 +112,14 @@ test03()
   VERIFY(e == list0301.end());
 }
 
+#if !__GXX_WEAK__ && defined(_MT_ALLOCATOR_H)
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<__gnu_test::copy_tracker>;
+template class __gnu_cxx::__mt_alloc<std::_List_node<__gnu_test::copy_tracker> >;
+#endif
+
 int main()
 {
   test03();
   return 0;
 }
-// vi:set sw=2 ts=2:
index 66c5c12..21c8b73 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003, 2004 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
@@ -84,9 +84,14 @@ test02()
   VERIFY(T::dtorCount() == 0);
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<__gnu_test::copy_tracker>;
+template class __gnu_cxx::__mt_alloc<std::_List_node<__gnu_test::copy_tracker> >;
+#endif
+
 int main()
 {
   test02();
   return 0;
 }
-// vi:set sw=2 ts=2:
index dfbc46c..dda9d9a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003, 2004 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
@@ -116,9 +116,14 @@ test01()
   VERIFY(k->id() == 1);
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<__gnu_test::copy_tracker>;
+template class __gnu_cxx::__mt_alloc<std::_List_node<__gnu_test::copy_tracker> >;
+#endif
+
 int main()
 {
   test01();
   return 0;
 }
-// vi:set sw=2 ts=2:
index 663ff1c..1b83775 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004 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
@@ -66,9 +66,14 @@ test01()
   VERIFY(p == list0101.end());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int main(void)
 {
   test01();
   return 0;
 }
-// vi:set sw=2 ts=2:
+
index 726c4bf..4cdc27e 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004 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
@@ -52,9 +52,13 @@ test02()
   VERIFY(list0201 == list0204);
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int main()
 {
   test02();
   return 0;
 }
-// vi:set sw=2 ts=2:
index 8b9c537..4919cd1 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004 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
@@ -66,9 +66,13 @@ test03()
   VERIFY(list0301 == list0304);
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int main(void)
 {
   test03();
   return 0;
 }
-// vi:set sw=2 ts=2:
index bbebfb5..2bfe127 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004 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
@@ -90,9 +90,14 @@ test04()
 #endif
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int main()
 {
   test04();
   return 0;
 }
-// vi:set sw=2 ts=2:
+
index 404f3c3..8c15aec 100644 (file)
@@ -1,6 +1,6 @@
 // 2001-08-23 pme & Sylvain.Pion@sophia.inria.fr
 
-// Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2003, 2004 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
@@ -60,11 +60,15 @@ void test01()
   VERIFY ( M.find(9) != M.end() );
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::pair<int const, int> >;
+template class __gnu_cxx::__mt_alloc<std::_Rb_tree_node<std::pair<int const, int> > >;
+#endif
 
 int main()
 {
   test01();
-
   return 0;
 }
 
index a62a98d..667c663 100644 (file)
@@ -1,6 +1,6 @@
 // Map iterator invalidation tests
 
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004 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
@@ -45,8 +45,13 @@ void test01()
   VERIFY(!finish._M_dereferenceable() && !finish._M_singular());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_Rb_tree_node<std::pair<int const, int> > >;
+#endif
+
 int main()
 {
   test01();
-  return !test;
+  return 0;
 }
index 0086deb..41fa0d3 100644 (file)
@@ -1,6 +1,6 @@
 // Map iterator invalidation tests
 
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004 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
@@ -64,6 +64,11 @@ void test02()
   VERIFY(!finish._M_singular() && !finish._M_dereferenceable());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_Rb_tree_node<std::pair<int const, int> > >;
+#endif
+
 int main()
 {
   test02();
index 03a7860..4a54f38 100644 (file)
@@ -1,6 +1,6 @@
 // 2000-09-07 bgarcia@laurelnetworks.com
 
-// Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2001, 2003, 2004 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
@@ -42,6 +42,11 @@ void test02()
     std::cerr << i->second << ' ';
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_Rb_tree_node<std::pair<int const, int> > >;
+#endif
+
 int main()
 {
   test02();
index 71b5385..d98566c 100644 (file)
@@ -46,6 +46,11 @@ void test01()
   VERIFY(!finish._M_dereferenceable() && !finish._M_singular());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_Rb_tree_node<std::pair<int const, int> > >;
+#endif
+
 int main()
 {
   test01();
index c6f659e..1025576 100644 (file)
@@ -65,6 +65,11 @@ void test02()
   VERIFY(!finish._M_singular() && !finish._M_dereferenceable());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_Rb_tree_node<std::pair<int const, int> > >;
+#endif
+
 int main()
 {
   test02();
index b82612f..21c6f45 100644 (file)
@@ -36,6 +36,11 @@ bool
 operator<(std::pair<int, int> const& lhs, std::pair<int, int> const& rhs) 
 { return lhs.first < rhs.first; }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_Rb_tree_node<std::pair<int, int> > >;
+#endif
+
 int main () 
 {
   typedef std::multiset<std::pair<int, int> >::iterator iterator;
index 0d9b76f..18c937d 100644 (file)
@@ -1,6 +1,6 @@
 // Multiset iterator invalidation tests
 
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004 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
@@ -45,6 +45,11 @@ void test01()
   VERIFY(!finish._M_dereferenceable() && !finish._M_singular());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_Rb_tree_node<int> >;
+#endif
+
 int main()
 {
   test01();
index fbca3c4..1185319 100644 (file)
@@ -1,6 +1,6 @@
 // Multiset iterator invalidation tests
 
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004 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
@@ -64,6 +64,11 @@ void test02()
   VERIFY(!finish._M_singular() && !finish._M_dereferenceable());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_Rb_tree_node<int> >;
+#endif
+
 int main()
 {
   test02();
index 9cea073..613a924 100644 (file)
@@ -1,6 +1,6 @@
 // 2002-06-28 pme
 
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2004 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
@@ -43,6 +43,11 @@ test03()
     pq.pop();
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int>;
+#endif
+
 int main()
 {
   test03();
index f1da795..b0875d0 100644 (file)
@@ -1,6 +1,6 @@
 // 2002-06-28 pme
 
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2004 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
@@ -34,6 +34,12 @@ test01()
   q.pop();
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int>;
+template class __gnu_cxx::__mt_alloc<int*>;
+#endif
+
 int main()
 {
   test01();
index 5a58f6f..5919063 100644 (file)
@@ -1,6 +1,6 @@
 // Set iterator invalidation tests
 
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004 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
@@ -45,6 +45,11 @@ void test01()
   VERIFY(!finish._M_dereferenceable() && !finish._M_singular());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_Rb_tree_node<int> >;
+#endif
+
 int main()
 {
   test01();
index 25277d8..64b5fc3 100644 (file)
@@ -1,6 +1,6 @@
 // Set iterator invalidation tests
 
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004 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
@@ -64,6 +64,11 @@ void test02()
   VERIFY(!finish._M_singular() && !finish._M_dereferenceable());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_Rb_tree_node<int> >;
+#endif
+
 int main()
 {
   test02();
index 4bfc101..bbb5bbd 100644 (file)
@@ -1,6 +1,6 @@
 // 2002-06-28 pme
 
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2004 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
@@ -34,6 +34,12 @@ test02()
   st.pop();
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int*>;
+template class __gnu_cxx::__mt_alloc<int>;
+#endif
+
 int main()
 {
   test02();
index f56c21d..88cac68 100644 (file)
@@ -1,6 +1,6 @@
 // 2002-03-05 Stephen M. Webb  <stephen.webb@bregmasoft.com>
 
-// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003, 2004 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
@@ -47,6 +47,11 @@ void test02()
   VERIFY( num == 4 );
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<unsigned long>;
+#endif
+
 int main()
 {
   test02();
index 797a2fc..8ac1f0f 100644 (file)
@@ -1,7 +1,7 @@
 // 1999-05-07
 // bkoz 
 
-// Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2002, 2003, 2004 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
@@ -54,6 +54,11 @@ void test01()
   VERIFY( sz01 == sz02 );
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<A<B> >;
+#endif
+
 int main()
 {
   test01();
index fe706a4..759fc75 100644 (file)
@@ -1,7 +1,7 @@
 // 1999-05-07
 // bkoz 
 
-// Copyright (C) 1999, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2002, 2003, 2004 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
@@ -71,6 +71,11 @@ void test02()
   }
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int>;
+#endif
+
 int main()
 {
   test02();
index e2f6587..5c212db 100644 (file)
@@ -1,6 +1,6 @@
 // 1999-06-29 bkoz
 
-// Copyright (C) 1999-2001, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1999-2001, 2002, 2003, 2004 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
@@ -40,9 +40,13 @@ void test01()
   vec01 = vec02;
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<A<B> >;
+#endif
+
 int main()
 {
   test01();
-
   return 0;
 }
index 03f84d8..ecee79d 100644 (file)
@@ -1,6 +1,6 @@
 // 1999-06-29 bkoz
 
-// Copyright (C) 1999-2001, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1999-2001, 2002, 2003, 2004 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
@@ -41,9 +41,15 @@ void test02()
   std::vector<int> v2(v1);
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int>;
+template class __gnu_cxx::__mt_alloc<double>;
+template class __gnu_cxx::__mt_alloc<A<B> >;
+#endif
+
 int main()
 {
   test02(); 
-
   return 0;
 }
index 5c41e65..e228e7b 100644 (file)
@@ -1,6 +1,6 @@
 // 1999-06-29 bkoz
 
-// Copyright (C) 1999-2001, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1999-2001, 2002, 2003, 2004 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
@@ -46,9 +46,13 @@ test03()
   VERIFY(std::equal(B, B + M, v5.begin()));
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int>;
+#endif
+
 int main()
 {
   test03();
-
   return 0;
 }
index 7680183..593b377 100644 (file)
@@ -1,6 +1,6 @@
 // 1999-06-29 bkoz
 
-// Copyright (C) 1999-2001, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1999-2001, 2002, 2003, 2004 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
@@ -32,9 +32,13 @@ void test04()
   std::vector<std::string> strings(c_strings, c_strings + 5);
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::string>;
+#endif
+
 int main()
 {
   test04();
-
   return 0;
 }
index 8902622..fce524d 100644 (file)
@@ -1,7 +1,7 @@
 // 2000-09-06
 // bkoz 
 
-// Copyright (C) 2000, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2003, 2004 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
@@ -55,9 +55,13 @@ bool test01()
   return test;
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<A<B> >;
+#endif
+
 int main()
 {
   test01();
-
   return 0;
 }
index 833ec54..b93146f 100644 (file)
@@ -53,6 +53,11 @@ void test01()
   VERIFY(i._M_singular());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int>;
+#endif
+
 int main()
 {
   test01();
index 6526504..75f67b0 100644 (file)
@@ -58,6 +58,11 @@ void test02()
   VERIFY(before._M_singular());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int>;
+#endif
+
 int main()
 {
   test02();
index b34af64..5447cf8 100644 (file)
@@ -83,6 +83,11 @@ void test03()
   VERIFY(before._M_singular());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int>;
+#endif
+
 int main()
 {
   test03();
index 0a9628f..347d231 100644 (file)
@@ -60,6 +60,11 @@ void test04()
   VERIFY(before._M_singular());
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int>;
+#endif
+
 int main()
 {
   test04();
index 20fb52d..52374e7 100644 (file)
@@ -1,6 +1,6 @@
 // 1999-11-09 bkoz
 
-// Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2001, 2004 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
@@ -49,6 +49,12 @@ test01()
   vec02.insert(vec02.begin(), pnp01, pnp01 + 1);
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int>;
+template class __gnu_cxx::__mt_alloc<A<B> >;
+#endif
+
 int main()
 {
   test01();
index b6d3739..0e68bfa 100644 (file)
@@ -1,6 +1,6 @@
 // 1999-11-09 bkoz
 
-// Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2001, 2004 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
@@ -55,6 +55,11 @@ test03()
   VERIFY((v4.size() == M) && (M != N));
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int>;
+#endif
+
 int main()
 {
   test03();
index c8e07cd..7bc5798 100644 (file)
@@ -1,7 +1,7 @@
 // 1999-05-07
 // bkoz 
 
-// Copyright (C) 1999, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2002, 2004 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
@@ -50,6 +50,11 @@ void test01()
   VERIFY( test );
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int>;
+#endif
+
 int main()
 {
   test01();
index 678feb8..2ca14a7 100644 (file)
@@ -1,6 +1,6 @@
 // 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
 
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2004 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
@@ -63,6 +63,11 @@ public:
   test_dm():  std::back_insert_iterator<std::list<int> >(l), p(container) { }
 };
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int main() 
 { 
   test01();
index 32a694e..9ee2e9f 100644 (file)
@@ -1,6 +1,6 @@
 // 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
 
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004 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
@@ -62,6 +62,11 @@ public:
   test_dm(): std::front_insert_iterator<std::list<int> >(l), p(container) { }
 };
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int main() 
 { 
   test01();
index 7fca060..322bccf 100644 (file)
@@ -1,6 +1,6 @@
 // 2001-06-21  Benjamin Kosnik  <bkoz@redhat.com>
 
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004 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
@@ -70,6 +70,11 @@ public:
   test_dm(): std::insert_iterator<std::list<int> >(l, i), p(container) { }
 };
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int main() 
 { 
   test01();
index 51360b0..b3f4c67 100644 (file)
@@ -2,7 +2,7 @@
 // 24.3.1 Iterator traits
 // (basic_string and vector implementations)
 //
-// Copyright (C) 1999, 2003 Free Software Foundation, Inc.
+// Copyright (C) 1999, 2003, 2004 Free Software Foundation, Inc.
 // This program 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 of the License, or 
@@ -588,6 +588,12 @@ test6642()
    return it - cit;
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int>;
+template class __gnu_cxx::__mt_alloc<std::string>;
+#endif
+
 int
 main()
 {
index 65034b2..b11af2a 100644 (file)
@@ -1,6 +1,6 @@
 // 2002-04-13  Paolo Carlini  <pcarlini@unitus.it>
 
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2004 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
@@ -38,6 +38,11 @@ void test01()
   vi >= v.begin();
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int>;
+#endif
+
 int main()
 {
   test01();
index b4a322f..d9743be 100644 (file)
@@ -33,9 +33,13 @@ bool operator==(X, X) { return true; }
 // Not implemented on purpose.  { dg-do link }
 bool operator!=(X, X);
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<X>;
+#endif
+
 int main()
 {
   std::vector<X> v, w;
-
   return !std::equal(v.begin(), v.end(), w.begin());
 }
index bd07009..8e5afb1 100644 (file)
@@ -1,6 +1,6 @@
 // 2000-03-29 sss/bkoz
 
-// Copyright (C) 2000, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2003, 2004 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
index 2c04877..d37209d 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004 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
@@ -71,6 +71,11 @@ test03()
     VERIFY(std::equal(A, A + N, D));
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int
 main()
 {
index 6c383bb..658e26b 100644 (file)
@@ -1,6 +1,6 @@
 // 2001-07-19 Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>
 
-// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2003, 2004 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
 #include <list>
 #include <algorithm>
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int main()
 {
   using namespace std;
index 55920fb..65b09b5 100644 (file)
@@ -1,6 +1,6 @@
 // 2003-10-14  Paolo Carlini  <pcarlini@unitus.it>
 
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004 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
@@ -86,6 +86,11 @@ void test03()
   VERIFY( equal(coll2.begin(), pos, B3) );
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif
+
 int main()
 {
   test01();
index 605e356..13adfb2 100644 (file)
@@ -1,6 +1,6 @@
 // 2003-10-07  Petur Runolfsson  <peturr02@ru.is>
 //
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004 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
@@ -131,6 +131,11 @@ void test01()
   fb.close();
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::pair<std::fpos<__mbstate_t>, std::size_t> >;
+#endif
+
 int main()
 {
   test01();
index 3ef7e6e..67a771a 100644 (file)
@@ -1,6 +1,6 @@
 // 2001-12-28  Phil Edwards  <pme@gcc.gnu.org>
 //
-// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2002, 2004 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
@@ -76,9 +76,14 @@ test2054( )
   binary_search(Index.begin(), Index.end(), SearchTerm, aComparison);
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<int>;
+template class __gnu_cxx::__mt_alloc<std::string>;
+#endif
+
 int main()
 {
   test2054();
-
   return 0;
 }
index 9911968..2a0bc0b 100644 (file)
@@ -95,6 +95,13 @@ void test01()
   }
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<__gnu_cxx::_Hashtable_node<std::pair<const std::string, int> > >;
+template class __gnu_cxx::__mt_alloc<__gnu_cxx::_Hashtable_node<std::pair<const std::string, int> >* >;
+template class __gnu_cxx::__mt_alloc<std::pair<std::string, int> >;
+#endif
+
 int main()
 {
   test01();
index de0020d..9db82b7 100644 (file)
@@ -1,7 +1,7 @@
 // 2002-04-28  Paolo Carlini  <pcarlini@unitus.it>
 //             Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>
 
-// Copyright (C) 2002 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2004 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
@@ -31,6 +31,12 @@ test01()
   const int anzahl = sizeof(werte) / sizeof(int);
   __gnu_cxx::hash_set<int> intTable(werte, werte + anzahl);
 }
+                                       
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<__gnu_cxx::_Hashtable_node<int> >;
+template class __gnu_cxx::__mt_alloc<__gnu_cxx::_Hashtable_node<int>* >;
+#endif
 
 int main()
 {
index 969554c..b79e5e9 100644 (file)
@@ -1,6 +1,6 @@
 // 2001-10-03 From: Dimitris Vyzovitis <vyzo@media.mit.edu>
 
-// Copyright (C) 2001 Free Software Foundation, Inc.
+// Copyright (C) 2001, 2004 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
@@ -31,6 +31,14 @@ void test01()
   std::cout << data << std::endl;
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<__gnu_cxx::_Rope_RopeLeaf<char, std::allocator<char> > >;
+template class __gnu_cxx::__mt_alloc<__gnu_cxx::_Rope_RopeFunction<char, std::allocator<char> > >;
+template class __gnu_cxx::__mt_alloc<__gnu_cxx::_Rope_RopeSubstring<char, std::allocator<char> > >;
+template class __gnu_cxx::__mt_alloc<__gnu_cxx::_Rope_RopeConcatenation<char, std::allocator<char> > >;
+#endif
+
 int main()
 {
   test01();
index 92a5f31..1b225f2 100644 (file)
@@ -1,6 +1,6 @@
 // 2002-01-23  Loren J. Rittle <rittle@labs.mot.com> <ljrittle@acm.org>
 //
-// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003, 2004 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
@@ -99,6 +99,11 @@ consume (void* t)
   return 0;
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_List_node<int> >;
+#endif                                                                
+
 int
 main ()
 {
index f95671d..be1ae68 100644 (file)
@@ -2,7 +2,7 @@
 // Adapted from http://gcc.gnu.org/ml/gcc-bugs/2002-01/msg00679.html
 // which was adapted from pthread1.cc by Mike Lu <MLu@dynamicsoft.com>
 //
-// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003, 2004 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
@@ -90,6 +90,12 @@ consume (void*)
   return 0;
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::string>;
+template class __gnu_cxx::__mt_alloc<std::_List_node<std::string> >;
+#endif
+
 int
 main (void)
 {
index 262796e..b950542 100644 (file)
@@ -2,7 +2,7 @@
 // Adpated from libstdc++/5464 submitted by jjessel@amadeus.net
 // Jean-Francois JESSEL (Amadeus SAS Development) 
 //
-// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+// Copyright (C) 2002, 2003, 2004 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
@@ -87,6 +87,12 @@ thread_function (void* arg)
   return arg;
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<tt_t>;
+template class __gnu_cxx::__mt_alloc<std::_List_node<std::string*> >;
+#endif   
+
 int
 main ()
 {
index c72acb5..e0fee71 100644 (file)
@@ -72,6 +72,11 @@ thread_main (void*)
   return 0;
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<std::_Rb_tree_node<std::pair<unsigned int const, std::string> > >;
+#endif
+
 int
 main (void)
 {
index 36acd46..5b4d099 100644 (file)
@@ -1,6 +1,6 @@
 // 2003-05-03  Loren J. Rittle <rittle@labs.mot.com> <ljrittle@acm.org>
 //
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2004 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
@@ -53,6 +53,14 @@ void* thread_main(void *)
   return 0;
 }
 
+#if !__GXX_WEAK__ && _MT_ALLOCATOR_H
+// Explicitly instantiate for systems with no COMDAT or weak support.
+template class __gnu_cxx::__mt_alloc<__gnu_cxx::_Rope_RopeLeaf<char, std::allocator<char> > >;
+template class __gnu_cxx::__mt_alloc<__gnu_cxx::_Rope_RopeFunction<char, std::allocator<char> > >;
+template class __gnu_cxx::__mt_alloc<__gnu_cxx::_Rope_RopeSubstring<char, std::allocator<char> > >;
+template class __gnu_cxx::__mt_alloc<__gnu_cxx::_Rope_RopeConcatenation<char, std::allocator<char> > >;
+#endif                                                                
+
 int
 main()
 {