This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]