/* { dg-require-effective-target label_values } */

int try (int num) {
  __label__ lab1, lab2, lab3, lab4, lab5, lab6, default_lab;

  void *do_switch (int num) {
    switch(num) {
    case 1:
      return &&lab1;
    case 2:
      return &&lab2;
    case 3:
      return &&lab3;
    case 4:
      return &&lab4;
    case 5:
      return &&lab5;
    case 6:
      return &&lab6;
    default:
      return &&default_lab;
    }
  }

  goto *do_switch (num);

 lab1:
  return 1;

 lab2:
  return 2;

 lab3:
  return 3;

 lab4:
  return 4;

 lab5:
  return 5;

 lab6:
  return 6;

 default_lab:
  return -1;
}

main()
{
  int i;
  for (i = 1; i <= 6; i++)
    {
      if (try (i) != i)
	abort();
    }
  exit(0);
}
