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

Reply via email to