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.