https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68302
--- Comment #10 from Aurelien Jarno <aurelien at aurel32 dot net> --- (In reply to Steve Ellcey from comment #8) > Where in CC1 do you segfault? Can you show me the error message you get > when compiling the test program using the latest gcc-5-branch sources. The only message I got when compiling it is the following: xgcc: internal compiler error: Segmentation fault (program cc1) Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. If I try to run cc1 with gdb, I get the following backtrace: #0 0x000000000063cc5f in rtx_equal_for_cselib_1 (x=0x7ffff68a0480, y=y@entry=0x7ffff69c7738, memmode=memmode@entry=VOIDmode) at /home/aurel32/git/gcc/gcc/cselib.c:866 code = <optimized out> fmt = <optimized out> i = <optimized out> __FUNCTION__ = "rtx_equal_for_cselib_1" #1 0x000000000063cd72 in rtx_equal_for_cselib_1 (x=<optimized out>, y=0x7ffff69c7738, memmode=memmode@entry=VOIDmode) at /home/aurel32/git/gcc/gcc/cselib.c:907 t = <optimized out> l = 0x15deb28 code = <optimized out> fmt = <optimized out> i = <optimized out> __FUNCTION__ = "rtx_equal_for_cselib_1" #2 0x000000000063d1d9 in rtx_equal_for_cselib_1 (x=x@entry=0x7ffff69c7738, y=0x7ffff69c7720, memmode=memmode@entry=VOIDmode) at /home/aurel32/git/gcc/gcc/cselib.c:1023 j = <optimized out> code = <optimized out> fmt = <optimized out> i = 1 __FUNCTION__ = "rtx_equal_for_cselib_1" #3 0x000000000063cdda in rtx_equal_for_cselib_1 (x=0x7ffff69c7738, y=0x15de2b8, memmode=memmode@entry=VOIDmode) at /home/aurel32/git/gcc/gcc/cselib.c:924 t = <optimized out> l = 0x15df088 code = <optimized out> fmt = <optimized out> i = <optimized out> __FUNCTION__ = "rtx_equal_for_cselib_1" #4 0x000000000063d002 in rtx_equal_for_cselib_1 (x=0x7ffff69c7720, y=y@entry=0x7ffff69c7738, memmode=memmode@entry=VOIDmode) at /home/aurel32/git/gcc/gcc/cselib.c:1026 j = <optimized out> code = <optimized out> fmt = <optimized out> i = 0 __FUNCTION__ = "rtx_equal_for_cselib_1" #5 0x000000000063cd72 in rtx_equal_for_cselib_1 (x=<optimized out>, y=0x7ffff69c7738, memmode=memmode@entry=VOIDmode) at /home/aurel32/git/gcc/gcc/cselib.c:907 t = <optimized out> l = 0x15df088 code = <optimized out> fmt = <optimized out> i = <optimized out> __FUNCTION__ = "rtx_equal_for_cselib_1" #6 0x000000000063d002 in rtx_equal_for_cselib_1 (x=x@entry=0x7ffff69c7738, y=0x7ffff69c7720, memmode=memmode@entry=VOIDmode) at /home/aurel32/git/gcc/gcc/cselib.c:1026 j = <optimized out> code = <optimized out> fmt = <optimized out> i = 0 __FUNCTION__ = "rtx_equal_for_cselib_1" #7 0x000000000063cdda in rtx_equal_for_cselib_1 (x=0x7ffff69c7738, y=0x15de2b8, memmode=memmode@entry=VOIDmode) at /home/aurel32/git/gcc/gcc/cselib.c:924 t = <optimized out> l = 0x15df088 code = <optimized out> fmt = <optimized out> i = <optimized out> __FUNCTION__ = "rtx_equal_for_cselib_1" #8 0x000000000063d002 in rtx_equal_for_cselib_1 (x=0x7ffff69c7720, y=y@entry=0x7ffff69c7738, memmode=memmode@entry=VOIDmode) at /home/aurel32/git/gcc/gcc/cselib.c:1026 j = <optimized out> code = <optimized out> fmt = <optimized out> i = 0 __FUNCTION__ = "rtx_equal_for_cselib_1" #9 0x000000000063cd72 in rtx_equal_for_cselib_1 (x=<optimized out>, y=0x7ffff69c7738, memmode=memmode@entry=VOIDmode) at /home/aurel32/git/gcc/gcc/cselib.c:907 t = <optimized out> l = 0x15df088 code = <optimized out> fmt = <optimized out> i = <optimized out> __FUNCTION__ = "rtx_equal_for_cselib_1" #10 0x000000000063d002 in rtx_equal_for_cselib_1 (x=x@entry=0x7ffff69c7738, y=0x7ffff69c7720, memmode=memmode@entry=VOIDmode) at /home/aurel32/git/gcc/gcc/cselib.c:1026 j = <optimized out> code = <optimized out> fmt = <optimized out> i = 0 __FUNCTION__ = "rtx_equal_for_cselib_1" #11 0x000000000063cdda in rtx_equal_for_cselib_1 (x=0x7ffff69c7738, y=0x15de2b8, memmode=memmode@entry=VOIDmode) at /home/aurel32/git/gcc/gcc/cselib.c:924 t = <optimized out> l = 0x15df088 code = <optimized out> fmt = <optimized out> i = <optimized out> __FUNCTION__ = "rtx_equal_for_cselib_1" #12 0x000000000063d002 in rtx_equal_for_cselib_1 (x=0x7ffff69c7720, y=y@entry=0x7ffff69c7738, memmode=memmode@entry=VOIDmode) at /home/aurel32/git/gcc/gcc/cselib.c:1026 j = <optimized out> code = <optimized out> It continues like that probably up to stack exhaustion. It looks like two mutually recursive functions.