On Fri, 14 Nov 2008, Kars de Jong wrote:
Preprocessed source stored into /tmp/ccgSA9Qa.out file, please attach this to your bugreport. make[1]: *** [net/sunrpc/xdr.o] Error 1 make: *** [_module_net/sunrpc] Error 2 I have attached the preprocessed source.
It works for me... pismo:/tmp$ m68k-linux-gnu-gcc -c ccgSA9Qa.c pismo:/tmp$ m68k-linux-gnu-gcc --version m68k-linux-gnu-gcc (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21) Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. But the version is misleading because I've added and removed patches. I'll build another one and try and reproduce the bug. Finn
Kind regards, Kars.
--- gcc-4.0.3/gcc/cse.c +++ gcc-4_1-branch/gcc/cse.c @@ -5513,6 +5513,22 @@ break; } + /* Reject certain invalid forms of CONST that we create. */ + else if (CONSTANT_P (trial) + && GET_CODE (trial) == CONST + /* Reject cases that will cause decode_rtx_const to + die. On the alpha when simplifying a switch, we + get (const (truncate (minus (label_ref) + (label_ref)))). */ + && (GET_CODE (XEXP (trial, 0)) == TRUNCATE + /* Likewise on IA-64, except without the + truncate. */ + || (GET_CODE (XEXP (trial, 0)) == MINUS + && GET_CODE (XEXP (XEXP (trial, 0), 0)) == LABEL_REF + && GET_CODE (XEXP (XEXP (trial, 0), 1)) == LABEL_REF))) + /* Do nothing for this case. */ + ; + /* Look for a substitution that makes a valid insn. */ else if (validate_change (insn, &SET_SRC (sets[i].rtl), trial, 0)) { @@ -5548,16 +5555,6 @@ else if (constant_pool_entries_cost && CONSTANT_P (trial) - /* Reject cases that will abort in decode_rtx_const. - On the alpha when simplifying a switch, we get - (const (truncate (minus (label_ref) (label_ref)))). */ - && ! (GET_CODE (trial) == CONST - && GET_CODE (XEXP (trial, 0)) == TRUNCATE) - /* Likewise on IA-64, except without the truncate. */ - && ! (GET_CODE (trial) == CONST - && GET_CODE (XEXP (trial, 0)) == MINUS - && GET_CODE (XEXP (XEXP (trial, 0), 0)) == LABEL_REF - && GET_CODE (XEXP (XEXP (trial, 0), 1)) == LABEL_REF) && (src_folded == 0 || (!MEM_P (src_folded) && ! src_folded_force_flag))