------- Comment #5 from rguenther at suse dot de 2007-07-07 15:24 -------
Subject: Re: [4.3 regression] 25_algorithms/search_n/iterator.cc:
pch-related verify_ssa failure
On Sat, 7 Jul 2007, hp at gcc dot gnu dot org wrote:
> ------- Comment #4 from hp at gcc dot gnu dot org 2007-07-07 15:17 -------
> In reply to comment #4: confirmed. I've now confirmed that it is commit
> 126198
> that exposed this bug, so I'll remove all other people from CC. You're very
> welcome to add yourself back, of course. :) Richi, if you can shed some light
> on what optimizations (what passes) your patch helped (caused more work for)
> the most, I'd be grateful. Or if you just fix the bug. :) There are trees
> named regress126197 and regress126198 in my home directory on gcc11 on the
> compile farm... where you don't have an account, bother.
So the only real change in this patch is in the following hunk:
Index: tree-inline.c
===================================================================
--- tree-inline.c (revision 126197)
+++ tree-inline.c (revision 126198)
@@ -1278,10 +1278,15 @@ setup_one_parameter (copy_body_data *id,
tree init_stmt;
tree var;
tree var_sub;
- tree rhs = value ? fold_convert (TREE_TYPE (p), value) : NULL;
+ tree rhs = value;
tree def = (gimple_in_ssa_p (cfun)
? gimple_default_def (id->src_cfun, p) : NULL);
+ if (value
+ && value != error_mark_node
+ && !useless_type_conversion_p (TREE_TYPE (p), TREE_TYPE (value)))
+ rhs = fold_build1 (NOP_EXPR, TREE_TYPE (p), value);
+
/* If the parameter is never assigned to, has no SSA_NAMEs created,
we may not need to create a new variable here at all. Instead, we
may
be able to just use the argument value. */
See also PR32624. Can you check if changing this part like in
comment #4 of that PR fixes this bug? It will only result in
less casts and less temporaries, but as can be seen from PR32624
this has some strange effects.
Richard.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32636