http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51933
Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2012-01-21
CC| |ebotcazou at gcc dot
| |gnu.org
AssignedTo|unassigned at gcc dot |ebotcazou at gcc dot
|gnu.org |gnu.org
Ever Confirmed|0 |1
--- Comment #2 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-01-21
15:44:46 UTC ---
> But then when make_defs_and_copies_lists is called on the QImode -> DImode
> extension, we reach:
> /* Initialize the work list. */
> if (!get_defs (extend_insn, src_reg, &work_list))
> {
> VEC_free (rtx, heap, work_list);
> /* The number of defs being equal to zero can only mean that all the
> definitions have been previously merged. */
> return 2;
> }
> and because the definition has been changed already.
Yes, this particular return embodies some implicit assumptions... Will fix.