1 // { dg-do compile } 2 3 struct S; // { dg-message "forward declaration" } 4 void foo (S &); 5 6 void f1(S & x)7f1 (S &x) // { dg-error "has incomplete type" } 8 { 9 #pragma omp parallel private (x) 10 foo (x); 11 } 12 13 void f2(S & x)14f2 (S &x) // { dg-error "has incomplete type" } 15 { 16 #pragma omp parallel firstprivate (x) 17 foo (x); 18 } 19 20 void f3(S & x)21f3 (S &x) // { dg-error "has incomplete type" } 22 { 23 #pragma omp parallel for lastprivate (x) 24 for (int i = 0; i < 10; i++) 25 foo (x); 26 } 27