re PR c++/28871 (massive C++ compile time slowdown)

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
This commit is contained in:
Benjamin Kosnik 2006-09-04 15:41:18 +00:00 committed by Benjamin Kosnik
parent 88525e1bd3
commit 06e744948b
7 changed files with 37 additions and 21 deletions

View 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

View 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))
};
};

View 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

View 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)

View File

@ -396,7 +396,7 @@ namespace placeholders
namespace
{
_Placeholder<_GLIBCXX_NUM_ARGS> _GLIBCXX_JOIN(_,_GLIBCXX_NUM_ARGS);
}
} // anonymous namespace
}
#endif

View 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

View 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 ""
}