// { dg-do compile }

void foo(int i)
{
  int j;
  switch (i) // { dg-error "invalid entry to OpenMP structured block" }
  {
  #pragma omp parallel // { dg-warning "statement will never be executed" }
    { case 0:; }
  }
  switch (i) // { dg-error "invalid entry to OpenMP structured block" }
  {
  #pragma omp for // { dg-warning "statement will never be executed" }
    for (j = 0; j < 10; ++ j)
      { case 1:; }
  }
  switch (i) // { dg-error "invalid entry to OpenMP structured block" }
  {
  #pragma omp critical // { dg-warning "statement will never be executed" }
    { case 2:; }
  }
  switch (i) // { dg-error "invalid entry to OpenMP structured block" }
  {
  #pragma omp master // { dg-warning "statement will never be executed" }
    { case 3:; }
  }
  switch (i) // { dg-error "invalid entry to OpenMP structured block" }
  {
  #pragma omp sections // { dg-warning "statement will never be executed" }
    { case 4:;
    #pragma omp section
       { case 5:; }
    }
  }
  switch (i) // { dg-error "invalid entry to OpenMP structured block" }
  {
  #pragma omp ordered // { dg-warning "statement will never be executed" }
    { default:; }
  }
}