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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to fail|                            |10.1.0, 8.1.0, 8.5.0
      Known to work|                            |9.1.0, 9.5.0

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
  <bb 8> [local count: 536870826]:
  f_18 = f_5(ab) + 1;
  f_4(ab) = f_18;
  if (f_4(ab) == 0)
    goto <bb 10>; [100.00%]
  else
    goto <bb 9>; [0.00%]

  <bb 9> [local count: 0]:
  _22 = (long int) f_5(ab);
  goto <bb 4>; [100.00%]

That is obvious overlap of f_4 and f_5.


Reduced testcase:
```
void _setjmp();
void a() __attribute__((__noreturn__));
struct b {
  b(int c) {
    if (c)
      a();
  }
  ~b();
};
int d;
void l(long);
void e() {
  b a(d);
  for (int f = 0; f < 10 ; ++f) {
    l(f - 1);
    _setjmp();
  }
}
```

Reply via email to