[Bug c++/40834] [4.5 Regression] Revision 149750 failed 483.xalancbmk in SPEC CPU 2006

hjl dot tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Fri Jul 24 14:16:00 GMT 2009



------- Comment #11 from hjl dot tools at gmail dot com  2009-07-24 14:16 -------
(In reply to comment #10)
> Subject: Re:  [4.5 Regression] Revision 149750 failed
>  483.xalancbmk in SPEC CPU 2006
> 
> On Thu, 23 Jul 2009, hjl dot tools at gmail dot com wrote:
> 
> > ------- Comment #9 from hjl dot tools at gmail dot com  2009-07-23 19:16 -------
> > This patch:
> > 
> > Index: cp-gimplify.c
> > ===================================================================
> > --- cp-gimplify.c       (revision 149933)
> > +++ cp-gimplify.c       (working copy)
> > @@ -804,15 +804,6 @@ cp_genericize_r (tree *stmt_p, int *walk
> >         }
> >      }
> > 
> > -  else if (TREE_CODE (stmt) == BIND_EXPR)
> > -    {
> > -      VEC_safe_push (tree, heap, wtd->bind_expr_stack, stmt);
> > -      cp_walk_tree (&BIND_EXPR_BODY (stmt),
> > -                   cp_genericize_r, data, NULL);
> > -      VEC_pop (tree, wtd->bind_expr_stack);
> > -      *walk_subtrees = 0;
> > -    }
> > -
> >    else if (TREE_CODE (stmt) == USING_STMT)
> >      {
> >        tree block = NULL_TREE;
> > 
> > fixed the problem. Does it make any senses?
> 
> Not really.  It will break debug information for using declarations.
> 
> If you add cp_walk_trees to BIND_EXPR_VARS and/or BIND_EXPR_BLOCK
> does that fix it?
> 
> Richard.
> 
I tried

Index: cp-gimplify.c
===================================================================
--- cp-gimplify.c       (revision 149933)
+++ cp-gimplify.c       (working copy)
@@ -807,6 +807,10 @@ cp_genericize_r (tree *stmt_p, int *walk
   else if (TREE_CODE (stmt) == BIND_EXPR)
     {
       VEC_safe_push (tree, heap, wtd->bind_expr_stack, stmt);
+      cp_walk_tree (&BIND_EXPR_VARS (stmt),
+                   cp_genericize_r, data, NULL);
+      cp_walk_tree (&BIND_EXPR_BLOCK (stmt),
+                   cp_genericize_r, data, NULL);
       cp_walk_tree (&BIND_EXPR_BODY (stmt),
                    cp_genericize_r, data, NULL);
       VEC_pop (tree, wtd->bind_expr_stack);

It doesn't help. 


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40834



More information about the Gcc-bugs mailing list