diff options
Diffstat (limited to 'test/OpenMP/declare_reduction_messages.cpp')
-rw-r--r-- | test/OpenMP/declare_reduction_messages.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/test/OpenMP/declare_reduction_messages.cpp b/test/OpenMP/declare_reduction_messages.cpp index 198d7756d035..3e5a15ee3dd9 100644 --- a/test/OpenMP/declare_reduction_messages.cpp +++ b/test/OpenMP/declare_reduction_messages.cpp @@ -134,3 +134,21 @@ int main() { } return fun(15) + foo(15); // expected-note {{in instantiation of function template specialization 'foo<int>' requested here}} } + +#if __cplusplus == 201103L +struct A { + A() {} + // expected-note@+1 {{copy constructor is implicitly deleted because 'A' has a user-declared move assignment operator}} + A& operator=(A&&) = default; +}; + +int A_TEST() { + A test; +// expected-error@+1 {{call to implicitly-deleted copy constructor of 'A'}} +#pragma omp declare reduction(+ : A : omp_out) initializer(omp_priv = A()) +// expected-error@+1 {{invalid operands to binary expression ('A' and 'A')}} +#pragma omp parallel reduction(+ : test) + {} + return 0; +} +#endif |