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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[12/13 Regression] wrong    |[10/11/12/13 Regression]
                   |code at -Os and above on    |wrong code at -Os and above
                   |x86_64-linux-gnu            |on x86_64-linux-gnu
      Known to work|11.3.0                      |6.1.0, 6.4.0
   Target Milestone|13.0                        |10.4
      Known to fail|                            |7.1.0, 8.1.0, 9.1.0

--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Here is a testcase which shows this was latent but fails in GCC 7+ (so it is
still a regression):
int a, b, c, *d;
int main() {
  int e = 0, f = 0;
  int *dd = d;
  for (; f < 1; f++)
    if (c < 0)
      e = *dd;
  if (a) {
    a = b ? 0 : a;
    e && (b = a);
  }
  return 0;
}

Reply via email to