https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83695

            Bug ID: 83695
           Summary: ICE on valid code at -O3: Segmentation fault
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: su at cs dot ucdavis.edu
  Target Milestone: ---

This appears to be a recent regression. 

$ gcctk -v
Using built-in specs.
COLLECT_GCC=gcctk
COLLECT_LTO_WRAPPER=/home/su/software/tmp/gcc/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/8.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-source-trunk/configure --enable-languages=c,c++,lto
--prefix=/home/su/software/tmp/gcc/gcc-trunk --disable-bootstrap
Thread model: posix
gcc version 8.0.0 20180105 (experimental) [trunk revision 256272] (GCC) 
$ 
$ gcctk -O2 small.c
$ gcc-7.2.0 -O3 small.c
$ 
$ gcctk -O3 small.c
during GIMPLE pass: linterchange
small.c: In function ‘main’:
small.c:15:5: internal compiler error: Segmentation fault
 int main ()
     ^~~~
0xc8fd6f crash_signal
        ../../gcc-source-trunk/gcc/toplev.c:325
0xd89984 instantiate_scev_r
        ../../gcc-source-trunk/gcc/tree-scalar-evolution.c:2720
0xd89e6b instantiate_scev_convert
        ../../gcc-source-trunk/gcc/tree-scalar-evolution.c:2611
0xd89e6b instantiate_scev_r
        ../../gcc-source-trunk/gcc/tree-scalar-evolution.c:2747
0xd8a7f5 instantiate_scev(edge_def*, loop*, tree_node*)
        ../../gcc-source-trunk/gcc/tree-scalar-evolution.c:2806
0xe1dc46 instantiate_parameters
        ../../gcc-source-trunk/gcc/tree-scalar-evolution.h:63
0xe1dc46 infer_loop_bounds_from_signedness
        ../../gcc-source-trunk/gcc/tree-ssa-loop-niter.c:3498
0xe1dc46 infer_loop_bounds_from_undefined
        ../../gcc-source-trunk/gcc/tree-ssa-loop-niter.c:3561
0xe22854 estimate_numbers_of_iterations(loop*)
        ../../gcc-source-trunk/gcc/tree-ssa-loop-niter.c:3943
0xe2425f estimate_numbers_of_iterations(loop*)
        ../../gcc-source-trunk/gcc/tree-ssa-loop-niter.c:4427
0xe2425f loop_exits_before_overflow
        ../../gcc-source-trunk/gcc/tree-ssa-loop-niter.c:4328
0xe24760 scev_probably_wraps_p(tree_node*, tree_node*, tree_node*, gimple*,
loop*, bool)
        ../../gcc-source-trunk/gcc/tree-ssa-loop-niter.c:4580
0x1502ec7 convert_affine_scev(loop*, tree_node*, tree_node**, tree_node**,
gimple*, bool, tree_node*)
        ../../gcc-source-trunk/gcc/tree-chrec.c:1262
0x1503424 chrec_convert_1
        ../../gcc-source-trunk/gcc/tree-chrec.c:1348
0xd8bf27 interpret_rhs_expr
        ../../gcc-source-trunk/gcc/tree-scalar-evolution.c:1930
0xd88dfe interpret_gimple_assign
        ../../gcc-source-trunk/gcc/tree-scalar-evolution.c:2002
0xd88dfe analyze_scalar_evolution_1
        ../../gcc-source-trunk/gcc/tree-scalar-evolution.c:2051
0xd88b1e analyze_scalar_evolution_1
        ../../gcc-source-trunk/gcc/tree-scalar-evolution.c:2039
0xd896b9 analyze_scalar_evolution(loop*, tree_node*)
        ../../gcc-source-trunk/gcc/tree-scalar-evolution.c:2111
0xe1dc29 infer_loop_bounds_from_signedness
        ../../gcc-source-trunk/gcc/tree-ssa-loop-niter.c:3498
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
$ 


------------------------------------


int a[3][3][3], b, d;
short c;
unsigned char e;

static void f ()
{
  for (c = 0; c < 2; c++)
      for (e = 0; e < 3; e++)
        for (b = 0; b < 3; b++)
          a[b][e][b] = 0;
  while (1)
    ;
}

int main ()
{
  if (d)
    f ();
  return 0;
}

Reply via email to