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

            Bug ID: 109410
           Summary: [13 Regression] ICE: verify_flow_info failed
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gs...@t-online.de
  Target Milestone: ---

Started between 20220717 and 20220724, at -O1+ :
(testcase derived from pr108783.c)
(gcc configured with --enable-checking=yes)


$ cat z1.c
__attribute__((returns_twice)) int baz (int, int);
int
bar (int x)
{
  return x;
}
int
foo (int x, int y)
{
  int a;
  a = bar (x);
  baz (x, y);
  return y && a && a;
}
int
qux (int x, int y)
{
  int a;
  a = bar (x);
  baz (x, y);
  return y && a != 42 && a >= 42;
}
int
corge (int x, int y)
{
  int a;
  baz (x, y);
  a = bar (x);
  return y || a == 42 || a > 42;
}


$ gcc-13-20230402 -c z1.c -O2
z1.c: In function 'corge':
z1.c:24:1: error: returns_twice call is not first in basic block 2
   24 | corge (int x, int y)
      | ^~~~~
baz (x_7(D), y_8(D));
during GIMPLE pass: reassoc
z1.c:24:1: internal compiler error: verify_flow_info failed
0x8eeb6f verify_flow_info()
        ../../gcc/cfghooks.cc:285
0xd58ce6 execute_function_todo
        ../../gcc/passes.cc:2110
0xd59742 execute_todo
        ../../gcc/passes.cc:2152

Reply via email to