/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-evrp-details -fdump-tree-vrp-thread1-details" } */

static int blocksize = 4096;

int bar (int);

void foo (void)
{
  int toread;
  int bytes;
  __attribute__ ((used))
  static char eof_reached = 0;

  toread = blocksize;
  bytes = 1;

  while (toread != 0)
    {
      bytes = bar (toread);
      if (bytes <= 0)
        {
          if (bytes < 0)
            continue;
          break;
        }
      toread -= bytes;
    }

  if (bytes == 0)
    eof_reached = 1;
}


/* First, we should simplify the bits < 0 test within the loop.  */
/* { dg-final { scan-tree-dump-times "Simplified relational" 1 "evrp" } } */

/* Second, we should thread the edge out of the loop via the break
   statement.  We also realize that the final bytes == 0 test is useless,
   and thread over it.  We also know that toread != 0 is useless when
   entering while loop and thread over it.  */
/* { dg-final { scan-tree-dump-times "Threaded jump" 3 "vrp-thread1" } } */


