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

            Bug ID: 112831
           Summary: ICE: tree check: expected class 'type', have
                    'exceptional' (error_mark) in
                    type_has_mode_precision_p, at tree.h:6767
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: shaohua.li at inf dot ethz.ch
                CC: fweimer at redhat dot com
  Target Milestone: ---

gcc at -Os crashes on the test case.

Bisected to r14-6034-g4ee2aca7ca0

Compiler explorer: https://godbolt.org/z/6We5qxMbr

% cat a.c
int a, b;
char c;
int d() {}
void e() {
  for (; c; c++) {
    b = 0;
    for (; b <= 7; b++)
      ;
    for (; (short)(d() + b) + a; a++)
      ;
  }
}
int main() {}
%
% gcc -Os a.c
during GIMPLE pass: sccp
a.c: In function ‘e’:
a.c:4:6: internal compiler error: tree check: expected class ‘type’, have
‘exceptional’ (error_mark) in type_has_mode_precision_p, at tree.h:6767
    4 | void e() {
      |      ^
0x7f47566c3082 __libc_start_main
        ../csu/libc-start.c:308
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
%

Reply via email to