------- Comment #3 from rguenth at gcc dot gnu dot org  2006-05-14 17:56 -------
We fold (j == 3 || j == 4) to (unsigned)j - 3 <= 1, which VRP considers to be
always false.

void exit (int);
void abort (void);
int a;
int main()
{
  int j;
  for (j = 0; j < 6; j++)
  {
    if ((unsigned)j - 3 <= 1)
      exit (0);
    a = 1000 * (6 - j);
  }
  abort ();
}

somehow the false information is extracted from the multiplication expression.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27603

Reply via email to