------- 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