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