/* PR middle-end/83977 */
/* { dg-do compile } */

void bar (void);

#pragma omp declare simd uniform (b) linear(a:b)
int
foo (int a, int b)
{
  a = a + 1;
/* This function can't be called from simd loops,
   because it violates declare simd restrictions.
   We shouldn't ICE on it though, nor attempt to generate
   simd clones for the *omp_fn* functions.  */
  #pragma omp parallel
  bar ();  
  return a;
}
