Hanno Meyer-Thurow <[EMAIL PROTECTED]> writes:

> sorry to bother again. I reduced the code (attached) that segfaults here
> on Core 2 Duo [1]. If I add -fno-split-wide-types the code does not segfault.
> That flag comes from your patchset [2].
> 
> execute: 
> # ./cc1 -quiet -m64 -O1 test.c -o test.o
> 
> Any ideas?

I don't know what is causing this.  I just checked again, and it does
not happen for me.

Looking at your backtrace from
    http://gcc.gnu.org/ml/gcc/2007-02/msg00095.html
count_pseudo is being called with register 71.  Register 71 no longer
exists; it was split.  That is why you are getting the SIGSEGV.  But
when I run my copy of the compiler, count_pseudo is never called with
register 71.

count_pseudo is being called from this code in order_regs_for_reload:
  EXECUTE_IF_SET_IN_REG_SET
    (&chain->live_throughout, FIRST_PSEUDO_REGISTER, i, rsi)
    {
      count_pseudo (i);
    }
Since register 71 no longer exists, it should not be in
chain->live_throughout.  So why is it set?

I'm not sure what else to say, since I can't recreate the problem
myself.

Can anybody else out there recreate this on their x86_64 system?

Ian

Reply via email to