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]

Re: bug reload1.c reg_values[] indexed with pseudo register.



  In message <199806201216.MAA00235@iron.rcp.co.uk>you write:
  > I have identified the cause of the access violation
  > as a pseudo register (i.e regno # >= FIRST_PSEUDO_REGISTER)
  > being used to index reg_values[] which results in this case in a
  > bogus rtx and hence subsequent access violation. The
  > invalid reg_values[] index occurs in reload1.c  within the
  > routine reload_cse_noop_set_p().
  > 
  > The set rtx parameter passed to reload_cse_noop_set_p()
  > was "(insn 504 11 25 (set (reg:SI 9 r9) (reg:SI 41)) (nil) (nil))"
  > and it is the (reg:SI 41) which results in the invalid index to
  > reg_values[] (FIRST_PSEUDO_REGISTER is 27 on this target).
  > 
  > It is the compilation of check_for_full_enumeration_handling()
  > in gcc/stmt.c which triggers the bug. I have a cut down but not
  > trival version of stmt.c which also triggers the bug.
You need to find out why the pseudo register still shows up in the
rtl -- it should have been eliminated by the time reload_cse runs.

jeff


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