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

            Bug ID: 103596
           Summary: [11/12 Regression] ICE: tree check: expected class
                    'type', have 'exceptional' (error_mark) in
                    useless_type_conversion_p, at gimple-expr.c:88
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: asolokha at gmx dot com
  Target Milestone: ---

gcc 12.0.0 20211205 snapshot (g:c9419faef0bfaf31e6a6f744baa064892e0d105c) ICEs
when compiling the following testcase w/ -O3 --param case-values-threshold=1:

int n;

void
qux (int a)
{
}

int
baz (void)
{
  return -1;
}

__attribute__ ((returns_twice)) int
bar (int b)
{
  if (n != 0)
    {
      if (b != 2)
        if (b != 0)
          return n + b;

      if (n == 2)
        return 0;
    }
}

void
foo (void)
{
  qux (n);
  bar (baz ());
}

% gcc-12.0.0 -O3 --param case-values-threshold=1 -c ubzlb8tx.c
during GIMPLE pass: fre
ubzlb8tx.c: In function 'foo':
ubzlb8tx.c:33:1: internal compiler error: tree check: expected class 'type',
have 'exceptional' (error_mark) in useless_type_conversion_p, at
gimple-expr.c:88
   33 | }
      | ^
0x78363b tree_class_check_failed(tree_node const*, tree_code_class, char
const*, int, char const*)
       
/var/tmp/portage/sys-devel/gcc-12.0.0_p20211205/work/gcc-12-20211205/gcc/tree.c:8752
0x6b6df4 tree_class_check(tree_node*, tree_code_class, char const*, int, char
const*)
       
/var/tmp/portage/sys-devel/gcc-12.0.0_p20211205/work/gcc-12-20211205/gcc/tree.h:3564
0x6b6df4 useless_type_conversion_p(tree_node*, tree_node*)
       
/var/tmp/portage/sys-devel/gcc-12.0.0_p20211205/work/gcc-12-20211205/gcc/gimple-expr.c:88
0xee4e5a verify_gimple_comparison
       
/var/tmp/portage/sys-devel/gcc-12.0.0_p20211205/work/gcc-12-20211205/gcc/tree-cfg.c:3550
0xef9fe9 verify_gimple_in_cfg(function*, bool)
       
/var/tmp/portage/sys-devel/gcc-12.0.0_p20211205/work/gcc-12-20211205/gcc/tree-cfg.c:5514
0xdbbecf execute_function_todo
       
/var/tmp/portage/sys-devel/gcc-12.0.0_p20211205/work/gcc-12-20211205/gcc/passes.c:2084
0xdbc40c execute_todo
       
/var/tmp/portage/sys-devel/gcc-12.0.0_p20211205/work/gcc-12-20211205/gcc/passes.c:2138

Reply via email to