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

--- Comment #12 from H.J. Lu <hjl.tools at gmail dot com> 2011-08-02 19:29:12 
UTC ---
combine.c has

 /* Allocate array for insn info.  */
  max_uid_known = get_max_uid ();
  uid_log_links = XCNEWVEC (struct insn_link *, max_uid_known + 1); 
  uid_insn_cost = XCNEWVEC (int, max_uid_known + 1); 
  gcc_obstack_init (&insn_link_obstack);

combine isn't prepared to deal with new insns generated by
convert_memory_address_addr_space and it accesses invalid
memory in

                FOR_EACH_LOG_LINK (link, temp)
                  if (link->insn == i2)
                    link->insn = i3;

on those newly generated insns.

Reply via email to