]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
2008-07-19 Paolo Carlini <paolo.carlini@oracle.com>
authorPaolo Carlini <paolo.carlini@oracle.com>
Sat, 19 Jul 2008 19:58:52 +0000 (19:58 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Sat, 19 Jul 2008 19:58:52 +0000 (19:58 +0000)
* include/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
(assert_node_consistent): Avoid ambiguous else warning.

* include/ext/pb_ds/detail/debug_map_base.hpp: Include <iostream>.

* include/bits/c++config: In debug-mode (and parallel-mode) set
_GLIBCXX_EXTERN_TEMPLATE to -1, not 0, thus disabling extern
templates only for basic_string (per libstdc++/21674).
* include/bits/basic_string.tcc: Use extern templates when
_GLIBCXX_EXTERN_TEMPLATE > 0.

From-SVN: r137990

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/basic_string.tcc
libstdc++-v3/include/bits/c++config
libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
libstdc++-v3/include/ext/pb_ds/detail/debug_map_base.hpp

index 9d11f86470e3d9ebd38f7077c90ac1cc19077d82..26529750fad340f0854e9addc5bf20753d7aa73f 100644 (file)
@@ -1,3 +1,16 @@
+2008-07-19  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       * include/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
+       (assert_node_consistent): Avoid ambiguous else warning.
+
+       * include/ext/pb_ds/detail/debug_map_base.hpp: Include <iostream>.
+
+       * include/bits/c++config: In debug-mode (and parallel-mode) set
+       _GLIBCXX_EXTERN_TEMPLATE to -1, not 0, thus disabling extern
+       templates only for basic_string (per libstdc++/21674).
+       * include/bits/basic_string.tcc: Use extern templates when
+       _GLIBCXX_EXTERN_TEMPLATE > 0.
+
 2008-07-18  Kris Van Hees  <kris.van.hees@oracle.com>
            Holger Hopp  <holger.hopp@sap.com>
 
index 062b02b598274de986791e53798cd84411157bea..49b649446d3e832e53c240d6e9a1f61da92dce4c 100644 (file)
@@ -1104,7 +1104,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
   // Inhibit implicit instantiations for required instantiations,
   // which are defined via explicit instantiations elsewhere.
   // NB: This syntax is a GNU extension.
-#if _GLIBCXX_EXTERN_TEMPLATE
+#if _GLIBCXX_EXTERN_TEMPLATE > 0
   extern template class basic_string<char>;
   extern template
     basic_istream<char>&
index f4029b2666524dac4b5980bb943c156d4ace4dda..e40d9603a9bece6a0c461a0e4a43fceaa4002c6a 100644 (file)
 #  define _GLIBCXX_STD __cxx1998
 #  define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) { 
 #  define _GLIBCXX_END_NAMESPACE }
-#  define _GLIBCXX_EXTERN_TEMPLATE 0
+#  define _GLIBCXX_EXTERN_TEMPLATE -1
 # endif
 
 // parallel
 #  define _GLIBCXX_STD __cxx1998
 #  define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) { 
 #  define _GLIBCXX_END_NAMESPACE }
-#  define _GLIBCXX_EXTERN_TEMPLATE 0
+#  define _GLIBCXX_EXTERN_TEMPLATE -1
 # endif
 
 // debug + parallel
 #  define _GLIBCXX_STD __cxx1998
 #  define _GLIBCXX_BEGIN_NAMESPACE(X) namespace X _GLIBCXX_VISIBILITY_ATTR(default) { 
 #  define _GLIBCXX_END_NAMESPACE }
-#  define _GLIBCXX_EXTERN_TEMPLATE 0
+#  define _GLIBCXX_EXTERN_TEMPLATE -1
 # endif
 
 # if __NO_INLINE__ && !__GXX_WEAK__
index 200249d8d9881cc5b657800fe60e4d32ff22beab..85e5b870ce9e8ae0b994d82c9d7ebd44df506ff4 100644 (file)
@@ -1,6 +1,6 @@
 // -*- C++ -*-
 
-// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+// Copyright (C) 2005, 2006, 2007, 2008 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
@@ -65,13 +65,15 @@ assert_max() const
     return;
   _GLIBCXX_DEBUG_ASSERT(base_type::parent(m_p_max) == NULL);
   for (const_iterator it = base_type::begin(); it != base_type::end(); ++it)
-    _GLIBCXX_DEBUG_ASSERT(!Cmp_Fn::operator()(m_p_max->m_value, it.m_p_nd->m_value));
+    _GLIBCXX_DEBUG_ASSERT(!Cmp_Fn::operator()(m_p_max->m_value,
+                                             it.m_p_nd->m_value));
 }
 
 PB_DS_CLASS_T_DEC
 void
 PB_DS_CLASS_C_DEC::
-assert_node_consistent(const_node_pointer p_nd, bool strictly_binomial, bool increasing) const
+assert_node_consistent(const_node_pointer p_nd, bool strictly_binomial,
+                      bool increasing) const
 {
   _GLIBCXX_DEBUG_ASSERT(increasing || strictly_binomial);
   base_type::assert_node_consistent(p_nd, false);
@@ -83,15 +85,20 @@ assert_node_consistent(const_node_pointer p_nd, bool strictly_binomial, bool inc
   assert_node_consistent(p_nd->m_p_next_sibling, strictly_binomial, increasing);
   assert_node_consistent(p_nd->m_p_l_child, true, false);
   if (p_nd->m_p_next_sibling != NULL)
-    if (increasing)
-      {
-       if (strictly_binomial)
-         _GLIBCXX_DEBUG_ASSERT(p_nd->m_metadata < p_nd->m_p_next_sibling->m_metadata);
-       else
-         _GLIBCXX_DEBUG_ASSERT(p_nd->m_metadata <= p_nd->m_p_next_sibling->m_metadata);
-      }
-    else
-      _GLIBCXX_DEBUG_ASSERT(p_nd->m_metadata > p_nd->m_p_next_sibling->m_metadata);
+    {
+      if (increasing)
+       {
+         if (strictly_binomial)
+           _GLIBCXX_DEBUG_ASSERT(p_nd->m_metadata
+                                 < p_nd->m_p_next_sibling->m_metadata);
+         else
+           _GLIBCXX_DEBUG_ASSERT(p_nd->m_metadata
+                                 <= p_nd->m_p_next_sibling->m_metadata);
+       }
+      else
+       _GLIBCXX_DEBUG_ASSERT(p_nd->m_metadata
+                             > p_nd->m_p_next_sibling->m_metadata);
+    }
 }
 
-#endif 
+#endif
index 086a50fc5fd412139e10f2c779a1a6b2894fa5b7..5319749128bc751d539e4a6dee07cd64a75964b2 100644 (file)
@@ -1,6 +1,6 @@
 // -*- C++ -*-
 
-// Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc.
+// Copyright (C) 2005, 2006, 2007, 2008 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
@@ -52,6 +52,7 @@
 #include <list>
 #include <utility>
 #include <cstdlib>
+#include <iostream>
 #include <ext/throw_allocator.h>
 #include <debug/debug.h>