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

rguenth at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Fri Jul 24 19:59:00 GMT 2009



------- Comment #14 from rguenth at gcc dot gnu dot org  2009-07-24 19:59 -------
Index: cp/cp-gimplify.c
===================================================================
--- cp/cp-gimplify.c    (revision 150041)
+++ cp/cp-gimplify.c    (working copy)
@@ -804,10 +804,14 @@ cp_genericize_r (tree *stmt_p, int *walk
        }
     }

-  else if (TREE_CODE (stmt) == BIND_EXPR)
+  else if (TREE_CODE (stmt) == BIND_EXPR
+          /* We walk this twice, once to keep track of the BIND_EXPR
+             stack and once to properly walk the BIND_EXPR vars.  */
+          && (VEC_empty (tree, wtd->bind_expr_stack)
+              || VEC_last (tree, wtd->bind_expr_stack) != stmt))
     {
       VEC_safe_push (tree, heap, wtd->bind_expr_stack, stmt);
-      cp_walk_tree (&BIND_EXPR_BODY (stmt),
+      cp_walk_tree (stmt_p,
                    cp_genericize_r, data, NULL);
       VEC_pop (tree, wtd->bind_expr_stack);
       *walk_subtrees = 0;


in case you want to do some testing.


-- 


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



More information about the Gcc-bugs mailing list