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