diff options
Diffstat (limited to 'clang/test/OpenMP/atomic_messages.cpp')
-rw-r--r-- | clang/test/OpenMP/atomic_messages.cpp | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/clang/test/OpenMP/atomic_messages.cpp b/clang/test/OpenMP/atomic_messages.cpp index 3965a77c955..a6c07ad9e28 100644 --- a/clang/test/OpenMP/atomic_messages.cpp +++ b/clang/test/OpenMP/atomic_messages.cpp @@ -100,11 +100,24 @@ T write() { T a, b = 0; // Test for atomic write #pragma omp atomic write - // expected-error@+1 {{the statement for 'atomic write' must be an expression statement of form 'x = expr;', where x is an l-value expression with scalar type}} + // expected-error@+2 {{the statement for 'atomic write' must be an expression statement of form 'x = expr;', where x is a lvalue expression with scalar type}} + // expected-note@+1 {{expected an expression statement}} ; // expected-error@+1 {{directive '#pragma omp atomic' cannot contain more than one 'write' clause}} #pragma omp atomic write write a = b; +#pragma omp atomic write + // expected-error@+2 {{the statement for 'atomic write' must be an expression statement of form 'x = expr;', where x is a lvalue expression with scalar type}} + // expected-note@+1 {{expected built-in assignment operator}} + foo(); +#pragma omp atomic write + // expected-error@+2 {{the statement for 'atomic write' must be an expression statement of form 'x = expr;', where x is a lvalue expression with scalar type}} + // expected-note@+1 {{expected built-in assignment operator}} + a += b; +#pragma omp atomic write + a = 0; +#pragma omp atomic write + a = b; return T(); } @@ -113,11 +126,24 @@ int write() { int a, b = 0; // Test for atomic write #pragma omp atomic write - // expected-error@+1 {{the statement for 'atomic write' must be an expression statement of form 'x = expr;', where x is an l-value expression with scalar type}} + // expected-error@+2 {{the statement for 'atomic write' must be an expression statement of form 'x = expr;', where x is a lvalue expression with scalar type}} + // expected-note@+1 {{expected an expression statement}} ; // expected-error@+1 {{directive '#pragma omp atomic' cannot contain more than one 'write' clause}} #pragma omp atomic write write a = b; +#pragma omp atomic write + // expected-error@+2 {{the statement for 'atomic write' must be an expression statement of form 'x = expr;', where x is a lvalue expression with scalar type}} + // expected-note@+1 {{expected built-in assignment operator}} + foo(); +#pragma omp atomic write + // expected-error@+2 {{the statement for 'atomic write' must be an expression statement of form 'x = expr;', where x is a lvalue expression with scalar type}} + // expected-note@+1 {{expected built-in assignment operator}} + a += b; +#pragma omp atomic write + a = 0; +#pragma omp atomic write + a = foo(); return write<int>(); } |