The following Fortran source cause an ICE in fold-const.c (indirectly called from within tree-ssa-propagate.c) when compiling at -O1 or higher. We have reasons to believe it's not front-end dependent (same problem happens with g95, which is significantly different from gfortran), but I can't make a C testcase.
complex :: z z = (1.9E19,0.0) z = 1/z end the dump is the following: MAIN__ () { complex4 z; _gfortran_set_std (70, 127, 0); z = __complex__ (9.9999996802856924650656260769173209088e+37, 9.9999996802856924650656260769173209088e+37); z = __complex__ (1.0e+0, 0.0) / z; } but I can't make a C testcase out of that. I can't isolate a single options among the ones implied by -O1 that is responsible for the ICE. Here is the backtrace: Program received signal SIGSEGV, Segmentation fault. const_binop (code=PLUS_EXPR, arg1=0x0, arg2=0xb7c8c7e0, notrunc=0) at ../../../trunk/gcc/fold-const.c:1551 1551 STRIP_NOPS (arg1); (gdb) where #0 const_binop (code=PLUS_EXPR, arg1=0x0, arg2=0xb7c8c7e0, notrunc=0) at ../../../trunk/gcc/fold-const.c:1551 #1 0x081fc38c in const_binop (code=RDIV_EXPR, arg1=0xb7c8c7e0, arg2=Variable "a rg2" is not available. ) at ../../../trunk/gcc/fold-const.c:1688 #2 0x08209e22 in fold_binary (code=Variable "code" is not available. ) at ../../../trunk/gcc/fold-const.c:8282 #3 0x0846da13 in evaluate_stmt (stmt=0xb7c32168) at ../../../trunk/gcc/tree-ssa-ccp.c:924 #4 0x0846e1f1 in ccp_visit_stmt (stmt=0xb7c32168, taken_edge_p=0xbfac1b4c, output_p=0xbfac1b48) at ../../../trunk/gcc/tree-ssa-ccp.c:1203 #5 0x0813573d in simulate_stmt (stmt=0xb7c32168) at ../../../trunk/gcc/tree-ssa-propagate.c:306 #6 0x08135f9a in ssa_propagate (visit_stmt=0x846e020 <ccp_visit_stmt>, visit_phi=0x846cea0 <ccp_visit_phi_node>) at ../../../trunk/gcc/tree-ssa-propagate.c:429 #7 0x0846ea6e in execute_ssa_ccp (store_ccp=Variable "store_ccp" is not availab le. ) at ../../../trunk/gcc/tree-ssa-ccp.c:1391 #8 0x0846ed2a in do_ssa_ccp () at ../../../trunk/gcc/tree-ssa-ccp.c:1399 #9 0x083ce7bb in execute_one_pass (pass=0x865c560) at ../../../trunk/gcc/passes.c:864 #10 0x083ce95f in execute_pass_list (pass=0x865c560) at ../../../trunk/gcc/passes.c:911 #11 0x083ce972 in execute_pass_list (pass=0x8659be0) at ../../../trunk/gcc/passes.c:912 #12 0x080df2d6 in tree_rest_of_compilation (fndecl=0xb7c89c80) at ../../../trunk/gcc/tree-optimize.c:418 #13 0x08426492 in cgraph_expand_function (node=0xb7c429c0) at ../../../trunk/gcc/cgraphunit.c:1112 #14 0x08428ffd in cgraph_optimize () at ../../../trunk/gcc/cgraphunit.c:1177 #15 0x080a76fc in gfc_be_parse_file (set_yydebug=0) at ../../../trunk/gcc/fortran/f95-lang.c:307 #16 0x0839ac3a in toplev_main (argc=14, argv=0xbfac1dc4) at ../../../trunk/gcc/toplev.c:999 #17 0x080dad2f in main (argc=0, argv=0xb7c3a958) at ../../../trunk/gcc/main.c:35 -- Summary: ICE on complex Product: gcc Version: 4.2.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: fxcoudert at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28151