re PR c++/28871 (massive C++ compile time slowdown)
authorBenjamin Kosnik <bkoz@redhat.com>
Mon, 4 Sep 2006 15:41:18 +0000 (15:41 +0000)
committerBenjamin Kosnik <bkoz@gcc.gnu.org>
Mon, 4 Sep 2006 15:41:18 +0000 (15:41 +0000)
2006-09-04  Benjamin Kosnik  <bkoz@redhat.com>

PR c++/28871
* include/ext/bitmap_allocator.h: Add comment for end of anonymous
namespace.
* include/ext/rope: Same.
* include/bits/cpp_type_traits.h: Same.
* include/tr1/tuple: Same.
* include/tr1/functional_iterate.h: Same.

* include/bits/cpp_type_traits.h: Revert anonymous namespace
change, use nested detail instead.

* testsuite/lib/libstdc++.exp (libstdc++_init): PCHFLAGS revert to
stdc++.h.

From-SVN: r116680

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/cpp_type_traits.h
libstdc++-v3/include/ext/bitmap_allocator.h
libstdc++-v3/include/ext/rope
libstdc++-v3/include/tr1/functional_iterate.h
libstdc++-v3/include/tr1/tuple
libstdc++-v3/testsuite/lib/libstdc++.exp

index a1feede..563621e 100644 (file)
@@ -1,3 +1,19 @@
+2006-09-04  Benjamin Kosnik  <bkoz@redhat.com>
+
+       PR c++/28871
+       * include/ext/bitmap_allocator.h: Add comment for end of anonymous
+       namespace.
+       * include/ext/rope: Same.
+       * include/bits/cpp_type_traits.h: Same.
+       * include/tr1/tuple: Same.
+       * include/tr1/functional_iterate.h: Same.
+
+       * include/bits/cpp_type_traits.h: Revert anonymous namespace
+       change, use nested detail instead.
+
+       * testsuite/lib/libstdc++.exp (libstdc++_init): PCHFLAGS revert to
+       stdc++.h.
+       
 2006-09-04  Paolo Carlini  <pcarlini@suse.de>
 
        * src/mt_allocator.cc (__pool<true>::_M_reclaim_block): Do
index f796b0c..a79c1be 100644 (file)
@@ -83,6 +83,19 @@ struct __false_type { };
 
 _GLIBCXX_BEGIN_NAMESPACE(std)
 
+namespace detail
+{
+  // NB: g++ can not compile these if declared within the class
+  // __is_pod itself.
+  typedef char __one;
+  typedef char __two[2];
+
+  template<typename _Tp>
+  __one __test_type(int _Tp::*);
+  template<typename _Tp>
+  __two& __test_type(...);
+} // namespace detail
+
   template<bool>
     struct __truth_type
     { typedef __false_type __type; };
@@ -339,27 +352,14 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
     : public __traitor<__is_arithmetic<_Tp>, __is_pointer<_Tp> >
     { };
 
-  // NB: g++ can not compile these if declared within the class
-  // __is_pod itself.
-  namespace 
-  {
-    typedef char __one;
-    typedef char __two[2];
-    
-    template<typename _Tp>
-    __one __test_type(int _Tp::*);
-    
-    template<typename _Tp>
-    __two& __test_type(...);
-  }
-
   // For the immediate use, the following is a good approximation.
   template<typename _Tp>
     struct __is_pod
     {
       enum
        {
-         __value = (sizeof(__test_type<_Tp>(0)) != sizeof(__one))
+         __value = (sizeof(detail::__test_type<_Tp>(0))
+                    != sizeof(detail::__one))
        };
     };
 
index 42109b4..0f90307 100644 (file)
@@ -82,7 +82,7 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
      *  else do no use any synchronization primitives.
      */
     bool const __threads_enabled = __gthread_active_p();
-  }
+  } // anonymous namespace
 #endif
 
 #if defined __GTHREADS
index 059342f..d24366c 100644 (file)
@@ -71,7 +71,7 @@ namespace
 {
   enum { _S_max_rope_depth = 45 };
   enum _Tag {_S_leaf, _S_concat, _S_substringfn, _S_function};
-}
+} // anonymous namespace
 
 _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
 
index 0b08a69..c29e341 100644 (file)
@@ -396,7 +396,7 @@ namespace placeholders
 namespace
 {
    _Placeholder<_GLIBCXX_NUM_ARGS> _GLIBCXX_JOIN(_,_GLIBCXX_NUM_ARGS);
-}
+} // anonymous namespace
 }
 #endif
 
index 15c944f..bd1a81f 100644 (file)
@@ -258,7 +258,7 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
  namespace
  {
    swallow_assign ignore;
- };
+ }; // anonymous namespace
 
 #define _GLIBCXX_CAT(x,y) _GLIBCXX_CAT2(x,y)
 #define _GLIBCXX_CAT2(x,y) x##y
index e652460..36c2e97 100644 (file)
@@ -214,8 +214,8 @@ proc libstdc++_init { testfile } {
                 "additional_flags=-include additional_flags=bits/stdtr1c++.h"]
        if {$lines == "" } {
 #          set PCH_CXXFLAGS "-include bits/extc++.h"
-           set PCH_CXXFLAGS "-include bits/stdtr1c++.h"
-#          set PCH_CXXFLAGS "-include bits/stdc++.h"
+#          set PCH_CXXFLAGS "-include bits/stdtr1c++.h"
+           set PCH_CXXFLAGS "-include bits/stdc++.h"
        } else {
            set PCH_CXXFLAGS ""
        }