This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/49007] ICE in extract_true_false_edges_from_block at tree-cfg.c:7379


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

--- Comment #18 from John David Anglin <danglin at gcc dot gnu.org> 2011-05-23 16:57:02 UTC ---
So, the problem is here:

             /* Figure out where to emit the special USE insn so we don't
                 later incorrectly compute register live/death info.  */
              rtx tmp = next_active_insn (trial);
              if (tmp == 0)
                tmp = find_end_label ();

              if (tmp)
                {
                  /* Insert the special USE insn and update dataflow info.  */
                  update_block (trial, tmp);

                  /* Now emit a label before the special USE insn, and
                     redirect our jump to the new label.  */
                  target_label = get_label_before (PREV_INSN (tmp));
                  reorg_redirect_jump (delay_insn, target_label);
                  next = insn;
                  continue;
                }

This code fails to handle the case where there already is a use.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]