diff options
author | Jakub Jelinek <jakub@redhat.com> | 2014-04-24 23:20:28 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2014-04-24 23:20:28 +0200 |
commit | 42056eaced812253def2d3be64b755a998c8f830 (patch) | |
tree | eca87031145bd4f31013353e8d6e18d6304def16 /libgomp | |
parent | f7468577f88cbfe33e0a5e9a2104a32f7e45c44f (diff) | |
download | gcc-42056eaced812253def2d3be64b755a998c8f830.zip gcc-42056eaced812253def2d3be64b755a998c8f830.tar.gz gcc-42056eaced812253def2d3be64b755a998c8f830.tar.bz2 |
c-parser.c (c_parser_omp_atomic): Allow seq_cst before atomic-clause...
gcc/c/
* c-parser.c (c_parser_omp_atomic): Allow seq_cst before
atomic-clause, allow comma in between atomic-clause and
seq_cst.
gcc/cp/
* parser.c (cp_parser_omp_atomic): Allow seq_cst before
atomic-clause, allow comma in between atomic-clause and
seq_cst.
gcc/testsuite/
* c-c++-common/gomp/atomic-16.c: Remove all dg-error directives.
Replace load with read and store with write.
libgomp/
* testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and
atomic type clauses in any order and optional comma in between.
* testsuite/libgomp.c++/atomic-15.C: Likewise.
* testsuite/libgomp.c/atomic-17.c: Likewise.
From-SVN: r209762
Diffstat (limited to 'libgomp')
-rw-r--r-- | libgomp/ChangeLog | 5 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.c++/atomic-14.C | 26 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.c++/atomic-15.C | 26 | ||||
-rw-r--r-- | libgomp/testsuite/libgomp.c/atomic-17.c | 26 |
4 files changed, 44 insertions, 39 deletions
diff --git a/libgomp/ChangeLog b/libgomp/ChangeLog index 06f40ac..0b26b9f 100644 --- a/libgomp/ChangeLog +++ b/libgomp/ChangeLog @@ -1,5 +1,10 @@ 2014-04-24 Jakub Jelinek <jakub@redhat.com> + * testsuite/libgomp.c++/atomic-14.C: Allow seq_cst and + atomic type clauses in any order and optional comma in between. + * testsuite/libgomp.c++/atomic-15.C: Likewise. + * testsuite/libgomp.c/atomic-17.c: Likewise. + * testsuite/libgomp.c/simd-7.c: New test. * testsuite/libgomp.c/simd-8.c: New test. * testsuite/libgomp.c/simd-9.c: New test. diff --git a/libgomp/testsuite/libgomp.c++/atomic-14.C b/libgomp/testsuite/libgomp.c++/atomic-14.C index 4cd9df8..dccea3a 100644 --- a/libgomp/testsuite/libgomp.c++/atomic-14.C +++ b/libgomp/testsuite/libgomp.c++/atomic-14.C @@ -13,13 +13,13 @@ main () v = x; if (v != 3) abort (); - #pragma omp atomic update seq_cst + #pragma omp atomic seq_cst update x = 3 * 2 * 1 + x; - #pragma omp atomic read seq_cst + #pragma omp atomic read, seq_cst v = x; if (v != 9) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic seq_cst, capture v = x = x | 16; if (v != 25) abort (); @@ -27,15 +27,15 @@ main () v = x = x + 14 * 2 / 4; if (v != 32) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic seq_cst capture v = x = 5 | x; if (v != 37) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic capture, seq_cst v = x = 40 + 12 - 2 - 7 - x; if (v != 6) abort (); - #pragma omp atomic read seq_cst + #pragma omp atomic seq_cst read v = x; if (v != 6) abort (); @@ -43,7 +43,7 @@ main () { v = x; x = 3 + x; } if (v != 6) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic seq_cst capture { v = x; x = -1 * -1 * -1 * -1 - x; } if (v != 9) abort (); @@ -51,11 +51,11 @@ main () v = x; if (v != -8) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic capture, seq_cst { x = 2 * 2 - x; v = x; } if (v != 12) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic seq_cst capture { x = 7 & x; v = x; } if (v != 4) abort (); @@ -63,7 +63,7 @@ main () { v = x; x = 6; } if (v != 4) abort (); - #pragma omp atomic read seq_cst + #pragma omp atomic read, seq_cst v = x; if (v != 6) abort (); @@ -71,11 +71,11 @@ main () { v = x; x = 7 * 8 + 23; } if (v != 6) abort (); - #pragma omp atomic read seq_cst + #pragma omp atomic seq_cst, read v = x; if (v != 79) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic capture , seq_cst { v = x; x = 23 + 6 * 4; } if (v != 79) abort (); @@ -83,7 +83,7 @@ main () v = x; if (v != 47) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic seq_cst capture { v = x; x = l ? 17 : 12; } if (v != 47) abort (); diff --git a/libgomp/testsuite/libgomp.c++/atomic-15.C b/libgomp/testsuite/libgomp.c++/atomic-15.C index 1eabce7..9abefb6 100644 --- a/libgomp/testsuite/libgomp.c++/atomic-15.C +++ b/libgomp/testsuite/libgomp.c++/atomic-15.C @@ -14,13 +14,13 @@ foo () v = x; if (v != 3) abort (); - #pragma omp atomic update seq_cst + #pragma omp atomic seq_cst update x = 3 * 2 * 1 + x; - #pragma omp atomic read seq_cst + #pragma omp atomic read, seq_cst v = x; if (v != 9) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic seq_cst, capture v = x = x | 16; if (v != 25) abort (); @@ -28,15 +28,15 @@ foo () v = x = x + 14 * 2 / 4; if (v != 32) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic seq_cst capture v = x = 5 | x; if (v != 37) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic capture, seq_cst v = x = 40 + 12 - 2 - 7 - x; if (v != 6) abort (); - #pragma omp atomic read seq_cst + #pragma omp atomic seq_cst read v = x; if (v != 6) abort (); @@ -44,7 +44,7 @@ foo () { v = x; x = 3 + x; } if (v != 6) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic seq_cst capture { v = x; x = -1 * -1 * -1 * -1 - x; } if (v != 9) abort (); @@ -52,11 +52,11 @@ foo () v = x; if (v != -8) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic capture, seq_cst { x = 2 * 2 - x; v = x; } if (v != 12) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic seq_cst capture { x = 7 & x; v = x; } if (v != 4) abort (); @@ -64,7 +64,7 @@ foo () { v = x; x = 6; } if (v != 4) abort (); - #pragma omp atomic read seq_cst + #pragma omp atomic read, seq_cst v = x; if (v != 6) abort (); @@ -72,11 +72,11 @@ foo () { v = x; x = 7 * 8 + 23; } if (v != 6) abort (); - #pragma omp atomic read seq_cst + #pragma omp atomic seq_cst, read v = x; if (v != 79) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic capture , seq_cst { v = x; x = 23 + 6 * 4; } if (v != 79) abort (); @@ -84,7 +84,7 @@ foo () v = x; if (v != 47) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic seq_cst capture { v = x; x = l ? 17 : 12; } if (v != 47) abort (); diff --git a/libgomp/testsuite/libgomp.c/atomic-17.c b/libgomp/testsuite/libgomp.c/atomic-17.c index 2bd0e9b..147ab26 100644 --- a/libgomp/testsuite/libgomp.c/atomic-17.c +++ b/libgomp/testsuite/libgomp.c/atomic-17.c @@ -13,13 +13,13 @@ main () v = x; if (v != 3) abort (); - #pragma omp atomic update seq_cst + #pragma omp atomic seq_cst update x = 3 * 2 * 1 + x; - #pragma omp atomic read seq_cst + #pragma omp atomic read, seq_cst v = x; if (v != 9) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic seq_cst, capture v = x = x | 16; if (v != 25) abort (); @@ -27,15 +27,15 @@ main () v = x = x + 14 * 2 / 4; if (v != 32) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic seq_cst capture v = x = 5 | x; if (v != 37) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic capture, seq_cst v = x = 40 + 12 - 2 - 7 - x; if (v != 6) abort (); - #pragma omp atomic read seq_cst + #pragma omp atomic seq_cst read v = x; if (v != 6) abort (); @@ -43,7 +43,7 @@ main () { v = x; x = 3 + x; } if (v != 6) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic seq_cst capture { v = x; x = -1 * -1 * -1 * -1 - x; } if (v != 9) abort (); @@ -51,11 +51,11 @@ main () v = x; if (v != -8) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic capture, seq_cst { x = 2 * 2 - x; v = x; } if (v != 12) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic seq_cst capture { x = 7 & x; v = x; } if (v != 4) abort (); @@ -63,7 +63,7 @@ main () { v = x; x = 6; } if (v != 4) abort (); - #pragma omp atomic read seq_cst + #pragma omp atomic read, seq_cst v = x; if (v != 6) abort (); @@ -71,11 +71,11 @@ main () { v = x; x = 7 * 8 + 23; } if (v != 6) abort (); - #pragma omp atomic read seq_cst + #pragma omp atomic seq_cst, read v = x; if (v != 79) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic capture , seq_cst { v = x; x = 23 + 6 * 4; } if (v != 79) abort (); @@ -83,7 +83,7 @@ main () v = x; if (v != 47) abort (); - #pragma omp atomic capture seq_cst + #pragma omp atomic seq_cst capture { v = x; x = l ? 17 : 12; } if (v != 47) abort (); |