/* { dg-do compile } */
/* { dg-options "-O2 -fdump-tree-vrp1" } */

extern void link_error (void);
void foo (void)
{
  int j = 256;
  do
    {
      if (j < 0 || j > 256)
	link_error ();
      j--;
    }
  while (j >= 0);
  if (j != -1)
    link_error ();
}
extern void link_error (void);
void bar (void)
{
  int j = 0;
  do
    {
      if (j < 0 || j > 256)
	link_error ();
      j++;
    }
  while (j <= 256);
  if (j != 257)
    link_error ();
}

/* { dg-final { scan-tree-dump-not "link_error" "vrp1" } } */
