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

            Bug ID: 112345
           Summary: ice in mark_block_for_update
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dcb314 at hotmail dot com
  Target Milestone: ---

For this C code:

int bail, test_block_move_end;
void test_block_move(my_cpu) {
  int start;
  int *p;
  _Bool at_end = 0;
  do {
    if (test_block_move_end)
      at_end = 1;
    if (my_cpu)
      continue;
    do
      write64();
    while (p <= start && (p += 16));
    if (bail)
      ;
  } while (!at_end && ++start);
}

compiled by recent gcc trunk as follows:

$ ~/gcc/results/bin/gcc -c -w -g -O2 bug974.c
during GIMPLE pass: thread
bug974.c: In function ‘test_block_move’:
bug974.c:2:6: internal compiler error: Segmentation fault
    2 | void test_block_move(my_cpu) {
      |      ^~~~~~~~~~~~~~~
0xebd2e9 crash_signal(int)
        ../../trunk.year/gcc/toplev.cc:315
0xf61718 mark_block_for_update(basic_block_def*)
        ../../trunk.year/gcc/tree-into-ssa.cc:451
0xf61ec2 mark_use_interesting(tree_node*, gimple*, basic_block_def*, bool)
        ../../trunk.year/gcc/tree-into-ssa.cc:2654

The bg first seems to occur sometime between g:8c40b72036c967fb
and g:9119b008b4195e06

Reply via email to