https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68146
--- Comment #2 from Dominique d'Humieres <dominiq at lps dot ens.fr> --- Reduced test case SUBROUTINE CJYVB(V,Z,VM,CBJ,CDJ,CBY,CDY) IMPLICIT DOUBLE PRECISION (A,B,G,O-Y) IMPLICIT COMPLEX*16 (C,Z) DIMENSION CBJ(0:*),CDJ(0:*),CBY(0:*),CDY(0:*) N=INT(V) CALL GAMMA2(VG,GA) DO 65 K=1,N CBY(K)=CYY 65 CONTINUE CDJ(0)=V0/Z*CBJ(0)-CBJ(1) DO 70 K=1,N 70 CDJ(K)=-(K+V0)/Z*CBJ(K)+CBJ(K-1) END This appeared between revisions r228586 (2015-10-07, compiles) and r228678 (2015-10-10, ICE). Backtrace for the reduced test with r229438 Program received signal SIGSEGV, Segmentation fault. gimple_stmt_nonnegative_warnv_p (stmt=<optimized out>, strict_overflow_p=<optimized out>, depth=<optimized out>) at ../../_clean/gcc/gimple-fold.c:6266 warning: Source file is more recent than executable. 6266 { (gdb) bt #0 gimple_stmt_nonnegative_warnv_p (stmt=<optimized out>, strict_overflow_p=<optimized out>, depth=<optimized out>) at ../../_clean/gcc/gimple-fold.c:6266 #1 0x0000000100679375 in tree_expr_nonnegative_p (t=<optimized out>) at ../../_clean/gcc/fold-const.c:13164 #2 0x00000001001d2f18 in generic_simplify (loc=<optimized out>, code=<optimized out>, type=<optimized out>, op0=<optimized out>) at generic-match.c:7964 #3 0x0000000100688e20 in fold_unary_loc (loc=<optimized out>, code=<optimized out>, type=<optimized out>, op0=<optimized out>) at ../../_clean/gcc/fold-const.c:7598 #4 0x000000010068a40a in fold_build1_stat_loc (loc=<optimized out>, code=<optimized out>, type=<optimized out>, op0=<optimized out>) at ../../_clean/gcc/fold-const.c:12269 #5 0x000000010099cfbf in gimplify_build1 (gsi=<optimized out>, code=<optimized out>, type=<optimized out>, a=<optimized out>) at ../../_clean/gcc/tree-cfg.c:8495 #6 0x00000001009ad1e9 in tree_lower_complex () at ../../_clean/gcc/tree-complex.c:1126 #7 0x00000001009ae242 in ?? () at ../../_clean/gcc/tree-complex.c:1736 #8 0x000000010089c091 in execute_one_pass (pass=<optimized out>) at ../../_clean/gcc/passes.c:2344 #9 0x000000010089c57e in execute_pass_list_1 (pass=<optimized out>) at ../../_clean/gcc/passes.c:2397 #10 0x000000010089c590 in execute_pass_list_1 (pass=<optimized out>) at ../../_clean/gcc/passes.c:2398 #11 0x000000010089c5d9 in execute_pass_list (fn=<optimized out>, pass=<optimized out>) at ../../_clean/gcc/passes.c:2408 #12 0x0000000100564017 in cgraph_node::expand (this=<optimized out>) at ../../_clean/gcc/cgraphunit.c:1983 #13 0x000000010056561c in symbol_table::compile (this=<optimized out>) at ../../_clean/gcc/cgraphunit.c:2119 #14 0x0000000100567574 in symbol_table::finalize_compilation_unit (this=<optimized out>) at ../../_clean/gcc/cgraphunit.c:2536 #15 0x0000000100965f3e in compile_file () at ../../_clean/gcc/toplev.c:508 #16 0x0000000100d536ac in ?? () #17 0x0000000100d55069 in main (argc=3, argv=0x7fff5fbff2d8) at ../../_clean/gcc/main.c:39