[Bug middle-end/89779] [9 Regression] internal compiler error: tree check: expected class ‘type’, have ‘exceptional’ (error_mark) in tree_nop_conversion_p, at tree.c:12798

skpgkp1 at gmail dot com gcc-bugzilla@gcc.gnu.org
Thu Mar 21 00:09:00 GMT 2019


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

--- Comment #2 from Sunil Pandey <skpgkp1 at gmail dot com> ---
Reduced test:

$ cat x.i
typedef a;
c(a *d, int b) {
  int e, f, g;
  for (; e; e++)
    for (f = 0; f < 4; f++)
      if (d)
        for (g = e + 1; g; g++)
          h(d[g]);
}
i() {
  a *j;
  int k, l;
  for (; k; k++)
    c(j, l);
}

Good case:

$ gcc -B./ -Ofast -S x.i -w
$ echo $?
0

Bad case:

$ gcc -B./ -Ofast -S x.i -w
during GIMPLE pass: ivopts
x.i: In function ‘i’:
x.i:10:1: internal compiler error: tree check: expected class ‘type’, have
‘exceptional’ (error_mark) in tree_nop_conversion_p, at tree.c:12792
   10 | i() {
      | ^
0x7265a6 tree_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
        ../../gcc-main.42UM/gcc/tree.c:9909
0x72cd07 tree_class_check(tree_node const*, tree_code_class, char const*, int,
char const*)
        ../../gcc-main.42UM/gcc/tree.h:3555
0x72cd07 tree_nop_conversion_p(tree_node const*, tree_node const*)
        ../../gcc-main.42UM/gcc/tree.c:12792
0x1014931 tree_nop_conversion
        ../../gcc-main.42UM/gcc/tree.c:12818
0x1014931 tree_strip_nop_conversions(tree_node*)
        ../../gcc-main.42UM/gcc/tree.c:12845
0xa6b027 operand_equal_p(tree_node const*, tree_node const*, unsigned int)
        ../../gcc-main.42UM/gcc/fold-const.c:3017
0xa6b4b2 operand_equal_p(tree_node const*, tree_node const*, unsigned int)
        ../../gcc-main.42UM/gcc/fold-const.c:3201
0xa6b15a operand_equal_p(tree_node const*, tree_node const*, unsigned int)
        ../../gcc-main.42UM/gcc/fold-const.c:2950
0xed336d loop_exits_before_overflow
        ../../gcc-main.42UM/gcc/tree-ssa-loop-niter.c:4627
0xed336d scev_probably_wraps_p(tree_node*, tree_node*, tree_node*, gimple*,
loop*, bool)
        ../../gcc-main.42UM/gcc/tree-ssa-loop-niter.c:4835
0xed336d scev_probably_wraps_p(tree_node*, tree_node*, tree_node*, gimple*,
loop*, bool)
        ../../gcc-main.42UM/gcc/tree-ssa-loop-niter.c:4793
0x1643f8f convert_affine_scev(loop*, tree_node*, tree_node**, tree_node**,
gimple*, bool, tree_node*)
        ../../gcc-main.42UM/gcc/tree-chrec.c:1299
0x1643a78 chrec_convert_1
        ../../gcc-main.42UM/gcc/tree-chrec.c:1357
0xe47dd8 interpret_rhs_expr
        ../../gcc-main.42UM/gcc/tree-scalar-evolution.c:1766
0xe45209 interpret_gimple_assign
        ../../gcc-main.42UM/gcc/tree-scalar-evolution.c:2045
0xe45209 analyze_scalar_evolution_1
        ../../gcc-main.42UM/gcc/tree-scalar-evolution.c:2096
0xe45bea analyze_scalar_evolution(loop*, tree_node*)
        ../../gcc-main.42UM/gcc/tree-scalar-evolution.c:2165
0xe48f8a analyze_scalar_evolution_in_loop
        ../../gcc-main.42UM/gcc/tree-scalar-evolution.c:2267
0xe490a8 simple_iv_with_niters(loop*, loop*, tree_node*, affine_iv*,
tree_node**, bool)
        ../../gcc-main.42UM/gcc/tree-scalar-evolution.c:3364
0xebe6f8 find_givs_in_stmt_scev
        ../../gcc-main.42UM/gcc/tree-ssa-loop-ivopts.c:1426
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.


More information about the Gcc-bugs mailing list