This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][C++] Fix PR29433, make C++ use a lot less time/memory
On Sat, 9 Dec 2006, Gabriel Dos Reis wrote:
> Richard Guenther <rguenther@suse.de> writes:
>
> [...]
>
> | I can fix the C++ failures with
> |
> |
> | 2006-12-09 Richard Guenther <rguenther@suse.de>
> |
> | * include/bits/stl_tree.h (struct _Rb_tree): Qualify types.
> |
> | * g++.dg/warn/implicit-typename1.C: Qualify types.
> | * g++.dg/parse/crash12.C: Likewise.
> | * g++.dg/tree-ssa/pr22444.C: Likewise.
>
> [...]
>
> Thanks for doing this. Please check it in.
In libstdc++ testing there are many more cases. Paolo, can you
investigate with the suggested change to gcc/cp/pt.c and fix up?
Sofar I stopped after the following:
Index: include/ext/pb_ds/detail/pat_trie_/traits.hpp
===================================================================
*** include/ext/pb_ds/detail/pat_trie_/traits.hpp (revision 119690)
--- include/ext/pb_ds/detail/pat_trie_/traits.hpp (working copy)
*************** namespace pb_ds
*** 93,99 ****
typedef E_Access_Traits e_access_traits;
typedef
! synth_e_access_traits<
type_traits,
false,
e_access_traits>
--- 93,99 ----
typedef E_Access_Traits e_access_traits;
typedef
! pb_ds::detail::synth_e_access_traits<
type_traits,
false,
e_access_traits>
Index: include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
===================================================================
*** include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp (revision 119690)
--- include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp (working copy)
*************** namespace pb_ds
*** 81,87 ****
entry_cmp<Value_Type, Cmp_Fn, is_simple<Value_Type>::value, Allocator>::type
#define PB_DS_RESIZE_POLICY_DEC \
! resize_policy<typename Allocator::size_type>
/**
* class description = "Base class for some types of h3ap$">
--- 81,87 ----
entry_cmp<Value_Type, Cmp_Fn, is_simple<Value_Type>::value, Allocator>::type
#define PB_DS_RESIZE_POLICY_DEC \
! pb_ds::detail::resize_policy<typename Allocator::size_type>
/**
* class description = "Base class for some types of h3ap$">
Index: include/ext/rope
===================================================================
*** include/ext/rope (revision 119690)
--- include/ext/rope (working copy)
*************** protected:
*** 2549,2555 ****
mutable_end()
{ return(iterator(this, size())); }
! typedef reverse_iterator<iterator> reverse_iterator;
reverse_iterator
mutable_rbegin()
--- 2549,2555 ----
mutable_end()
{ return(iterator(this, size())); }
! typedef std::reverse_iterator<iterator> reverse_iterator;
reverse_iterator
mutable_rbegin()
Index: include/bits/stl_tree.h
===================================================================
*** include/bits/stl_tree.h (revision 119690)
--- include/bits/stl_tree.h (working copy)
*************** _GLIBCXX_BEGIN_NAMESPACE(std)
*** 320,332 ****
typename _Compare, typename _Alloc = allocator<_Val> >
class _Rb_tree
{
! typedef typename _Alloc::template rebind<_Rb_tree_node<_Val> >::other
_Node_allocator;
protected:
typedef _Rb_tree_node_base* _Base_ptr;
typedef const _Rb_tree_node_base* _Const_Base_ptr;
! typedef _Rb_tree_node<_Val> _Rb_tree_node;
public:
typedef _Key key_type;
--- 320,332 ----
typename _Compare, typename _Alloc = allocator<_Val> >
class _Rb_tree
{
! typedef typename _Alloc::template rebind<std::_Rb_tree_node<_Val> >::other
_Node_allocator;
protected:
typedef _Rb_tree_node_base* _Base_ptr;
typedef const _Rb_tree_node_base* _Const_Base_ptr;
! typedef std::_Rb_tree_node<_Val> _Rb_tree_node;
public:
typedef _Key key_type;