With current trunk (revision 140056) I see the following bootstrap error on mips: /home/tbm/build/gcc-snapshot-20080906/build/./prev-gcc/xgcc -B/home/tbm/build/gcc-snapshot-20080906/build/./prev-gcc/ -B/usr/lib/gcc-snapshot/mips-linux-gnu/bin/ -c -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wcast-qual -Wold-style-definition -Wc++-compat -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common -DHAVE_CONFIG_H -I. -I. -I../../src/gcc -I../../src/gcc/. -I../../src/gcc/../include -I../../src/gcc/../libcpp/include -I../../src/gcc/../libdecnumber -I../../src/gcc/../libdecnumber/dpd -I../libdecnumber ../../src/gcc/cfg.c -o cfg.o ../../src/gcc/c-parser.c: In function 'c_parser_direct_declarator_inner': ../../src/gcc/c-parser.c:2424: internal compiler error: Segmentation fault Please submit a full bug report,
Configured with: --enable-languages=c,c++ --enable-shared --with-system-zlib --disable-nls --enable-clocale=gnu --enable-libstdcxx-debug --disable-libssp --disable-werror --build=mips-linux-gnu --host=mips-linux-gnu --target=mips-linux-gnu
140035 seems OK: http://gcc.gnu.org/ml/gcc-testresults/2008-09/msg00503.html I am now trying 140069.
It is also working on r140069 http://gcc.gnu.org/ml/gcc-testresults/2008-09/msg00612.html
I still see the segfault (with 140156). I'll give you an account on the machine tomorrow.
Maybe related to PR 37424 and all the other IRA ones.
Adding Adam Nemet since I see the segfault on a Cavium Octeon based machine (from Movidis).
I was able to reproduce this with 140295. Assigning to myself.
It's caused by this http://gcc.gnu.org/ml/gcc-patches/2008-08/msg02376.html. In this hunk: @@ -1901,7 +1904,8 @@ noce_try_sign_mask (struct noce_if_info INSN_B which can happen for e.g. conditional stores to memory. */ b_unconditional = (if_info->insn_b == NULL_RTX || BLOCK_FOR_INSN (if_info->insn_b) == if_info->test_bb); - if (rtx_cost (t, SET) >= COSTS_N_INSNS (2) + if (rtx_cost (t, SET, optimize_bb_for_speed_p (BLOCK_FOR_INSN (if_info->insn_b))) + >= COSTS_N_INSNS (2) && (!b_unconditional || t != if_info->b)) return FALSE; if_info->insn_b is allowed to be null.
I think this is the same bug as PR 37483.
*** This bug has been marked as a duplicate of 37483 ***