/* PR debug/37616 */
/* Test that one can put breakpoints onto continue, exitlab and break
   and actually see program reaching those breakpoints.  */
/* { dg-do compile } */
/* { dg-options "-O0 -gdwarf-2 -dA" } */

extern void abort (void);

int
foo (int parm)
{
  int varj, varm;

  for (varj = 0; varj < 10; varj++)
    {
      if (varj == 5)
	continue;
      if (varj == 7 && !parm)
	goto exitlab;
      if (varj == 9)
	break;
      varm = varj;
    }

exitlab:
  return varm;
}

int
main (void)
{
  if (foo (0) != 6)
    abort ();
  if (foo (1) != 8)
    abort ();
  return 0;
}

/* { dg-final { scan-assembler "pr37616.c:17" } } */
/* { dg-final { scan-assembler "pr37616.c:19" } } */
/* { dg-final { scan-assembler "pr37616.c:21" } } */
