1 // { dg-do compile { target c++11 } } 2 3 struct S { S (); ~S (); S &operator = (const S &) = delete; int s; }; // { dg-message "declared here" } 4 #pragma omp declare reduction (+ : S : omp_out.s += omp_in.s) 5 6 S s; 7 8 void foo(void)9foo (void) 10 { 11 #pragma omp simd reduction (+: s) 12 for (int i = 0; i < 64; ++i) 13 s.s += i; 14 } 15 16 void bar(int * x)17bar (int *x) 18 { 19 #pragma omp simd reduction (inscan, +: s) // { dg-error "use of deleted function" } 20 for (int i = 0; i < 64; ++i) 21 { 22 s.s += i; 23 #pragma omp scan inclusive (s) // { dg-error "" } 24 x[i] = s.s; 25 } 26 } 27