Hi, sh4-unknown-linux-gnu fails to build during compiling libobjc:
/exp/ldroot/dodes/ORIG/trunk/libobjc/encoding.c: In function 'objc_alignof_type': /exp/ldroot/dodes/ORIG/trunk/libobjc/encoding.c:620:1: internal compiler error: Segmentation fault } ^ 0x860f910 crash_signal ../../ORIG/trunk/gcc/toplev.c:334 0x88c3f61 barrier_align(rtx_def*) ../../ORIG/trunk/gcc/config/sh/sh.c:5780 0x88c2956 find_barrier ../../ORIG/trunk/gcc/config/sh/sh.c:5157 There is a corner case which barrier_align is called with a null argument and it hits the recent rearrange of barrier_align. The attached patch is to fix this. Tested on sh4-unknown-linux-gnu. Committed. Regards, kaz -- 2013-11-15 Kaz Kojima <kkoj...@gcc.gnu.org> * config/sh/sh.c (barrier_align): Return 0 when barrier_or_label is null. diff -up ORIG/trunk/gcc/config/sh/sh.c trunk/gcc/config/sh/sh.c --- ORIG/trunk/gcc/config/sh/sh.c 2013-11-15 19:33:51.000000000 +0900 +++ trunk/gcc/config/sh/sh.c 2013-11-15 19:59:29.000000000 +0900 @@ -5777,6 +5777,9 @@ barrier_align (rtx barrier_or_label) { rtx next, pat; + if (! barrier_or_label) + return 0; + if (LABEL_P (barrier_or_label) && NEXT_INSN (barrier_or_label) && JUMP_TABLE_DATA_P (NEXT_INSN (barrier_or_label)))