This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: Combine error?
- To: Jason Eckhardt <jle at cygnus dot com>
- Subject: Re: Combine error?
- From: Richard Earnshaw <rearnsha at arm dot com>
- Date: Mon, 20 Mar 2000 16:02:25 +0000
- Cc: gcc-bugs at gcc dot gnu dot org, gcc at gcc dot gnu dot org
- Cc: rearnsha at arm dot com
- Organization: ARM Ltd.
- Reply-To: rearnsha at arm dot com
>
> I'm seeing many of these on hppa1.1 with --enable-checking:
> Internal compiler error in `combine_instructions', at combine.c:632
> RTL check: access of elt 5 of `note' with last elt 4
>
> That code is:
> /* Try each sequence of three linked insns ending with this one. */
>
> for (links = LOG_LINKS (insn); links; links = XEXP (links, 1))
> --> for (nextlinks = LOG_LINKS (XEXP (links, 0)); nextlinks;
> nextlinks = XEXP (nextlinks, 1))
>
>
> The subexpression "XEXP (links, 0)" in some cases is a note, so the rtl
> checker flags a problem when we access LOG_LINKS of it.
> What is the intent here? Should we simply check for a note and not
> execute the for-loop if it is?
>
> jason.
Nick Clifton posted a patch to do exactly that. I objected because I
thought that it was wrong for a log-link to point to a note (it happens
because flow has converted the insn pointed to into a pre/post operand in
another insn, but hasn't updated the link). However, I thought Jeff had
over-ruled on this one and said the patch was OK; but it doesn't seem to
have got any further than that.
R.