diff options
Diffstat (limited to 'gcc-4.8.1/gcc/testsuite/g++.dg/gomp/for-1.C')
-rw-r--r-- | gcc-4.8.1/gcc/testsuite/g++.dg/gomp/for-1.C | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/gcc-4.8.1/gcc/testsuite/g++.dg/gomp/for-1.C b/gcc-4.8.1/gcc/testsuite/g++.dg/gomp/for-1.C new file mode 100644 index 000000000..f8bb9d547 --- /dev/null +++ b/gcc-4.8.1/gcc/testsuite/g++.dg/gomp/for-1.C @@ -0,0 +1,49 @@ +// { dg-do compile } + +extern void baz(int); +void foo (int j, int k) +{ + int i; + + /* Valid loops. */ + #pragma omp for + for (i = 0; i < 10; i++) + baz (i); + + #pragma omp for + for (i = j; i <= 10; i+=4) + baz (i); + + #pragma omp for + for (i = j; i > 0; i = i - 1) + baz (j); + + #pragma omp for + for (i = j; i >= k; i--) + baz (i); + + // Malformed parallel loops. + #pragma omp for + i = 0; // { dg-error "for statement expected" } + for ( ; i < 10; ) + { + baz (i); + i++; + } + + #pragma omp for + for (i = 0; ; i--) // { dg-error "missing controlling predicate" } + { + if (i >= 10) + break; // { dg-error "break" } + baz (i); + } + + #pragma omp for + for (i = 0; i < 10 && j > 4; i-=3) // { dg-error "invalid controlling predicate" } + baz (i); + + #pragma omp for + for (i = 0; i < 10; i-=3, j+=2) // { dg-error "invalid increment expression" } + baz (i); +} |