------- Comment #23 from spop at gcc dot gnu dot org  2007-06-21 08:21 -------
Subject: Re:  ICE: fold check: original tree changed by fold with
--enable-checking=fold

On 6/21/07, Richard Guenther <[EMAIL PROTECTED]> wrote:
>
> The fold_binary change looks unnecessary.

ok.

> The rest is ok.
>

There was something wrong in the rest, so I'm proposing this fix instead,
as we were not using the modified base anymore for building the result 't'.

@@ -14191,14 +14220,15 @@ build_fold_addr_expr_with_type (tree t,
     }
   else
     {
-      tree base = t;
+      tree copy_t = copy_node (t);
+      tree base = copy_t;

       while (handled_component_p (base))
        base = TREE_OPERAND (base, 0);
       if (DECL_P (base))
        TREE_ADDRESSABLE (base) = 1;

-      t = build1 (ADDR_EXPR, ptrtype, t);
+      t = build1 (ADDR_EXPR, ptrtype, copy_t);
     }

   return t;


-- 


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

Reply via email to