This is the mail archive of the gcc-regression@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: execute/990628-1.c regression




--On Monday, June 11, 2001 05:27:09 PM -0700 Geoff Keating 
<geoffk@geoffk.org> wrote:

>
> Hi Mark,
>
>> native gcc.sum gcc.c-torture/execute/990628-1.c
>
> this seems to be caused by
>
> 2001-06-09  Mark Mitchell  <mark@codesourcery.com>
>
>        * toplev.c (rest_of_compilation): Remove dead code before
>        purge_addressof.
>
> The problem is that a REG_WAS_0 note pointed to an insn which had been
> deleted and so the pointer is NULL, and cse.c (around line 7488)
> wasn't expecting that.
>
> I suspect the right solution is to delete the note when the insn is
> deleted, but it could also be that fixing cse would be correct.

Interesting.  I agree with your proposed solution, but rtl.h says:

  /* The register set in this insn held 0 before the insn.  The contents of
     the note is the insn that stored the 0.  If that insn is deleted or
     patched to a NOTE, the REG_WAS_0 is inoperative.  The REG_WAS_0 note
     is actually an INSN_LIST, not an EXPR_LIST.  */
  REG_WAS_0,

which is confusing.  I will try to work something out.

Thanks,

--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com


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