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

            Bug ID: 118895
           Summary: ICE: during GIMPLE pass: pre
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: yunboni at smail dot nju.edu.cn
  Target Milestone: ---

This code crashes at -O2:

```c
unsigned long a;
void fn1() {
  unsigned long e = a;
  int c = e;
  int d = c < 100 ? c : 0;
  if (d + (int)e & 608)
    while (e & 608)
      e <<= 1;
}
```

Compiler Explorer: https://godbolt.org/z/qvvhh5M5j

Crash: during GIMPLE pass: pre

Backtrace:
simple.c: In function ‘b’:
simple.c:2:6: internal compiler error: Segmentation fault
    2 | void b() {
      |      ^
0x260a386 internal_error(char const*, ...)
        ../../gcc/diagnostic-global-context.cc:517
0x1143f13 crash_signal
        ../../gcc/toplev.cc:322
0x1345424 bmp_iter_set_init(bitmap_iterator*, bitmap_head const*, unsigned int,
unsigned int*)
        ../../gcc/bitmap.h:542
0x1345424 find_or_generate_expression
        ../../gcc/tree-ssa-pre.cc:2776
0x1344a3a find_or_generate_expression
        ../../gcc/tree-ssa-pre.cc:2748
0x1344a3a create_expression_by_pieces
        ../../gcc/tree-ssa-pre.cc:2924
0x1349943 insert_into_preds_of_block
        ../../gcc/tree-ssa-pre.cc:3132
0x134c360 do_pre_regular_insertion
        ../../gcc/tree-ssa-pre.cc:3398
0x134c360 insert
        ../../gcc/tree-ssa-pre.cc:3833
0x134c360 execute
        ../../gcc/tree-ssa-pre.cc:4470

Reply via email to