| /* { dg-do compile } */ | |
| /* { dg-options "-fopenmp" } */ | |
| struct S {}; | |
| void foo (void *, void *); | |
| void bar (void *, void *); | |
| void baz (void *); | |
| #pragma omp declare reduction(+:struct S:foo (&omp_out, &omp_in))initializer(bar(&omp_priv, &omp_orig)) | |
| void | |
| test (void) | |
| { | |
| struct S a, b[10]; | |
| #pragma omp parallel reduction(+:a) | |
| baz (&a); | |
| } |