Commit ba045eb2 by Tobias Burnus Committed by Tobias Burnus

Improve OMP/ACC error diagnostic in Fortran

	gcc/fortran/
	* openmp.c (gfc_match_omp_clauses): Show a clause-parsing
	error if none was rised before.
	* parse.c (matcha, matcho): If error occurred after
	OpenMP/OpenACC directive matched, do not try other directives.

	gcc/testsuite/
	* gfortran.dg/goacc/asyncwait-1.f95: Handle new error message.
	* gfortran.dg/goacc/asyncwait-2.f95: Likewise
	* gfortran.dg/goacc/asyncwait-3.f95: Likewise
	* gfortran.dg/goacc/asyncwait-4.f95: Likewise
	* gfortran.dg/goacc/default-2.f: Likewise
	* gfortran.dg/goacc/enter-exit-data.f95: Likewise
	* gfortran.dg/goacc/if.f95: Likewise
	* gfortran.dg/goacc/list.f95: Likewise
	* gfortran.dg/goacc/literal.f95: Likewise
	* gfortran.dg/goacc/loop-2-kernels-tile.f: Likewise95
	* gfortran.dg/goacc/loop-2-parallel-tile.f95: Likewise
	* gfortran.dg/goacc/loop-7.f95: Likewise
	* gfortran.dg/goacc/parallel-kernels-cla: Likewiseuses.f95
	* gfortran.dg/goacc/routine-6.f90: Likewise
	* gfortran.dg/goacc/several-directives.f95: Likewise
	* gfortran.dg/goacc/sie.f95: Likewise
	* gfortran.dg/goacc/tile-1.f90: Likewise
	* gfortran.dg/goacc/update-if_present-2.: Likewisef90
	* gfortran.dg/gomp/declare-simd-1.f90: Likewise
	* gfortran.dg/gomp/pr29759.f90: Likewise

From-SVN: r276447
parent 4aef4667
2019-10-02 Tobias Burnus <tobias@codesourcery.com> 2019-10-02 Tobias Burnus <tobias@codesourcery.com>
* openmp.c (gfc_match_omp_clauses): Show a clause-parsing
error if none was rised before.
* parse.c (matcha, matcho): If error occurred after
OpenMP/OpenACC directive matched, do not try other directives.
2019-10-02 Tobias Burnus <tobias@codesourcery.com>
* trans-openmp.c (gfc_omp_is_optional_argument): Fix coding * trans-openmp.c (gfc_omp_is_optional_argument): Fix coding
style. style.
......
...@@ -1922,6 +1922,8 @@ gfc_match_omp_clauses (gfc_omp_clauses **cp, const omp_mask mask, ...@@ -1922,6 +1922,8 @@ gfc_match_omp_clauses (gfc_omp_clauses **cp, const omp_mask mask,
if (gfc_match_omp_eos () != MATCH_YES) if (gfc_match_omp_eos () != MATCH_YES)
{ {
if (!gfc_error_flag_test ())
gfc_error ("Failed to match clause at %C");
gfc_free_omp_clauses (c); gfc_free_omp_clauses (c);
return MATCH_ERROR; return MATCH_ERROR;
} }
......
...@@ -609,13 +609,18 @@ decode_statement (void) ...@@ -609,13 +609,18 @@ decode_statement (void)
/* Like match and if spec_only, goto do_spec_only without actually /* Like match and if spec_only, goto do_spec_only without actually
matching. */ matching. */
/* If the directive matched but the clauses failed, do not start
matching the next directive in the same switch statement. */
#define matcha(keyword, subr, st) \ #define matcha(keyword, subr, st) \
do { \ do { \
match m2; \
if (spec_only && gfc_match (keyword) == MATCH_YES) \ if (spec_only && gfc_match (keyword) == MATCH_YES) \
goto do_spec_only; \ goto do_spec_only; \
else if (match_word (keyword, subr, &old_locus) \ else if ((m2 = match_word (keyword, subr, &old_locus)) \
== MATCH_YES) \ == MATCH_YES) \
return st; \ return st; \
else if (m2 == MATCH_ERROR) \
goto error_handling; \
else \ else \
undo_new_statement (); \ undo_new_statement (); \
} while (0) } while (0)
...@@ -711,6 +716,7 @@ decode_oacc_directive (void) ...@@ -711,6 +716,7 @@ decode_oacc_directive (void)
/* Directive not found or stored an error message. /* Directive not found or stored an error message.
Check and give up. */ Check and give up. */
error_handling:
if (gfc_error_check () == 0) if (gfc_error_check () == 0)
gfc_error_now ("Unclassifiable OpenACC directive at %C"); gfc_error_now ("Unclassifiable OpenACC directive at %C");
...@@ -746,18 +752,23 @@ decode_oacc_directive (void) ...@@ -746,18 +752,23 @@ decode_oacc_directive (void)
/* Like match, but don't match anything if not -fopenmp /* Like match, but don't match anything if not -fopenmp
and if spec_only, goto do_spec_only without actually matching. */ and if spec_only, goto do_spec_only without actually matching. */
/* If the directive matched but the clauses failed, do not start
matching the next directive in the same switch statement. */
#define matcho(keyword, subr, st) \ #define matcho(keyword, subr, st) \
do { \ do { \
match m2; \
if (!flag_openmp) \ if (!flag_openmp) \
; \ ; \
else if (spec_only && gfc_match (keyword) == MATCH_YES) \ else if (spec_only && gfc_match (keyword) == MATCH_YES) \
goto do_spec_only; \ goto do_spec_only; \
else if (match_word (keyword, subr, &old_locus) \ else if ((m2 = match_word (keyword, subr, &old_locus)) \
== MATCH_YES) \ == MATCH_YES) \
{ \ { \
ret = st; \ ret = st; \
goto finish; \ goto finish; \
} \ } \
else if (m2 == MATCH_ERROR) \
goto error_handling; \
else \ else \
undo_new_statement (); \ undo_new_statement (); \
} while (0) } while (0)
...@@ -1030,6 +1041,7 @@ decode_omp_directive (void) ...@@ -1030,6 +1041,7 @@ decode_omp_directive (void)
not -fopenmp and simd_matched is false, i.e. if a directive other not -fopenmp and simd_matched is false, i.e. if a directive other
than one marked with match has been seen. */ than one marked with match has been seen. */
error_handling:
if (flag_openmp || simd_matched) if (flag_openmp || simd_matched)
{ {
if (!gfc_error_check ()) if (!gfc_error_check ())
......
2019-10-02 Tobias Burnus <tobias@codesourcery.com> 2019-10-02 Tobias Burnus <tobias@codesourcery.com>
* gfortran.dg/goacc/asyncwait-1.f95: Handle new error message.
* gfortran.dg/goacc/asyncwait-2.f95: Likewise.
* gfortran.dg/goacc/asyncwait-3.f95: Likewise.
* gfortran.dg/goacc/asyncwait-4.f95: Likewise.
* gfortran.dg/goacc/default-2.f: Likewise.
* gfortran.dg/goacc/enter-exit-data.f95: Likewise.
* gfortran.dg/goacc/if.f95: Likewise.
* gfortran.dg/goacc/list.f95: Likewise.
* gfortran.dg/goacc/literal.f95: Likewise.
* gfortran.dg/goacc/loop-2-kernels-tile.f95: Likewise.
* gfortran.dg/goacc/loop-2-parallel-tile.f95: Likewise.
* gfortran.dg/goacc/loop-7.f95: Likewise.
* gfortran.dg/goacc/parallel-kernels-clauses.f95: Likewise.
* gfortran.dg/goacc/routine-6.f90: Likewise.
* gfortran.dg/goacc/several-directives.f95: Likewise.
* gfortran.dg/goacc/sie.f95: Likewise.
* gfortran.dg/goacc/tile-1.f90: Likewise.
* gfortran.dg/goacc/update-if_present-2.f90: Likewise.
* gfortran.dg/gomp/declare-simd-1.f90: Likewise.
* gfortran.dg/gomp/pr29759.f90: Likewise.
2019-10-02 Tobias Burnus <tobias@codesourcery.com>
* libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-1.f90: New. * libgomp/testsuite/libgomp.fortran/use_device_ptr-optional-1.f90: New.
2019-10-02 Jakub Jelinek <jakub@redhat.com> 2019-10-02 Jakub Jelinek <jakub@redhat.com>
......
...@@ -11,13 +11,13 @@ program asyncwait ...@@ -11,13 +11,13 @@ program asyncwait
a(:) = 3.0 a(:) = 3.0
b(:) = 0.0 b(:) = 0.0
!$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1 2) ! { dg-error "Unclassifiable OpenACC directive" } !$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1 2) ! { dg-error "Failed to match clause" }
do i = 1, N do i = 1, N
b(i) = a(i) b(i) = a(i)
end do end do
!$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" } !$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" }
!$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1,) ! { dg-error "Unclassifiable OpenACC directive" } !$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1,) ! { dg-error "Failed to match clause" }
do i = 1, N do i = 1, N
b(i) = a(i) b(i) = a(i)
end do end do
...@@ -29,25 +29,25 @@ program asyncwait ...@@ -29,25 +29,25 @@ program asyncwait
end do end do
!$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" } !$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" }
!$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1,2,) ! { dg-error "Unclassifiable OpenACC directive" } !$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1,2,) ! { dg-error "Failed to match clause" }
do i = 1, N do i = 1, N
b(i) = a(i) b(i) = a(i)
end do end do
!$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" } !$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" }
!$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1,2 3) ! { dg-error "Unclassifiable OpenACC directive" } !$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1,2 3) ! { dg-error "Failed to match clause" }
do i = 1, N do i = 1, N
b(i) = a(i) b(i) = a(i)
end do end do
!$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" } !$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" }
!$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1,2,,) ! { dg-error "Unclassifiable OpenACC directive" } !$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1,2,,) ! { dg-error "Failed to match clause" }
do i = 1, N do i = 1, N
b(i) = a(i) b(i) = a(i)
end do end do
!$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" } !$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" }
!$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1 ! { dg-error "Unclassifiable OpenACC directive" } !$acc parallel copyin (a(1:N)) copy (b(1:N)) async (1 ! { dg-error "Failed to match clause" }
do i = 1, N do i = 1, N
b(i) = a(i) b(i) = a(i)
end do end do
......
...@@ -83,13 +83,13 @@ program asyncwait ...@@ -83,13 +83,13 @@ program asyncwait
end do end do
!$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" } !$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" }
!$acc parallel copyin (a(1:N)) copy (b(1:N)) waitasync ! { dg-error "Unclassifiable OpenACC directive" } !$acc parallel copyin (a(1:N)) copy (b(1:N)) waitasync ! { dg-error "Failed to match clause" }
do i = 1, N do i = 1, N
b(i) = a(i) b(i) = a(i)
end do end do
!$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" } !$acc end parallel ! { dg-error "Unexpected \\\!\\\$ACC END PARALLEL" }
!$acc parallel copyin (a(1:N)) copy (b(1:N)) asyncwait ! { dg-error "Unclassifiable OpenACC directive" } !$acc parallel copyin (a(1:N)) copy (b(1:N)) asyncwait ! { dg-error "Failed to match clause" }
do i = 1, N do i = 1, N
b(i) = a(i) b(i) = a(i)
end do end do
......
...@@ -33,9 +33,9 @@ program asyncwait ...@@ -33,9 +33,9 @@ program asyncwait
!$acc wait (1.0) ! { dg-error "WAIT clause at \\\(1\\\) requires a scalar INTEGER expression" } !$acc wait (1.0) ! { dg-error "WAIT clause at \\\(1\\\) requires a scalar INTEGER expression" }
!$acc wait 1 ! { dg-error "Unclassifiable OpenACC directive" } !$acc wait 1 ! { dg-error "Failed to match clause" }
!$acc wait N ! { dg-error "Unclassifiable OpenACC directive" } !$acc wait N ! { dg-error "Failed to match clause" }
!$acc wait (1) !$acc wait (1)
end program asyncwait end program asyncwait
...@@ -11,21 +11,21 @@ program asyncwait ...@@ -11,21 +11,21 @@ program asyncwait
a(:) = 3.0 a(:) = 3.0
b(:) = 0.0 b(:) = 0.0
!$acc wait async (1 2) ! { dg-error "Unclassifiable OpenACC directive" } !$acc wait async (1 2) ! { dg-error "Failed to match clause" }
!$acc wait async (1,) ! { dg-error "Unclassifiable OpenACC directive" } !$acc wait async (1,) ! { dg-error "Failed to match clause" }
!$acc wait async (,1) ! { dg-error "Invalid character in name" } !$acc wait async (,1) ! { dg-error "Invalid character in name" }
!$acc wait async (1, 2, ) ! { dg-error "Unclassifiable OpenACC directive" } !$acc wait async (1, 2, ) ! { dg-error "Failed to match clause" }
!$acc wait async (1, 2, ,) ! { dg-error "Unclassifiable OpenACC directive" } !$acc wait async (1, 2, ,) ! { dg-error "Failed to match clause" }
!$acc wait async (1 ! { dg-error "Unclassifiable OpenACC directive" } !$acc wait async (1 ! { dg-error "Failed to match clause" }
!$acc wait async (1, *) ! { dg-error "Unclassifiable OpenACC directive" } !$acc wait async (1, *) ! { dg-error "Failed to match clause" }
!$acc wait async (1, a) ! { dg-error "Unclassifiable OpenACC directive" } !$acc wait async (1, a) ! { dg-error "Failed to match clause" }
!$acc wait async (a) ! { dg-error "ASYNC clause at \\\(1\\\) requires a scalar INTEGER expression" } !$acc wait async (a) ! { dg-error "ASYNC clause at \\\(1\\\) requires a scalar INTEGER expression" }
...@@ -33,9 +33,9 @@ program asyncwait ...@@ -33,9 +33,9 @@ program asyncwait
!$acc wait async (1.0) ! { dg-error "ASYNC clause at \\\(1\\\) requires a scalar INTEGER expression" } !$acc wait async (1.0) ! { dg-error "ASYNC clause at \\\(1\\\) requires a scalar INTEGER expression" }
!$acc wait async 1 ! { dg-error "Unclassifiable OpenACC directive" } !$acc wait async 1 ! { dg-error "Failed to match clause" }
!$acc waitasync ! { dg-error "Unclassifiable OpenACC directive" } !$acc waitasync ! { dg-error "Failed to match clause" }
!$acc wait,async ! { dg-error "Unclassifiable OpenACC directive" } !$acc wait,async ! { dg-error "Failed to match clause" }
end program asyncwait end program asyncwait
...@@ -3,58 +3,58 @@ ...@@ -3,58 +3,58 @@
SUBROUTINE F1 SUBROUTINE F1
IMPLICIT NONE IMPLICIT NONE
!$ACC KERNELS DEFAULT ! { dg-error "Unclassifiable OpenACC directive" } !$ACC KERNELS DEFAULT ! { dg-error "Failed to match clause" }
!$ACC END KERNELS ! { dg-error "Unexpected" } !$ACC END KERNELS ! { dg-error "Unexpected" }
!$ACC PARALLEL DEFAULT ! { dg-error "Unclassifiable OpenACC directive" } !$ACC PARALLEL DEFAULT ! { dg-error "Failed to match clause" }
!$ACC END PARALLEL ! { dg-error "Unexpected" } !$ACC END PARALLEL ! { dg-error "Unexpected" }
!$ACC KERNELS DEFAULT ( ! { dg-error "Unclassifiable OpenACC directive" } !$ACC KERNELS DEFAULT ( ! { dg-error "Failed to match clause" }
!$ACC END KERNELS ! { dg-error "Unexpected" } !$ACC END KERNELS ! { dg-error "Unexpected" }
!$ACC PARALLEL DEFAULT ( ! { dg-error "Unclassifiable OpenACC directive" } !$ACC PARALLEL DEFAULT ( ! { dg-error "Failed to match clause" }
!$ACC END PARALLEL ! { dg-error "Unexpected" } !$ACC END PARALLEL ! { dg-error "Unexpected" }
!$ACC KERNELS DEFAULT (, ! { dg-error "Unclassifiable OpenACC directive" } !$ACC KERNELS DEFAULT (, ! { dg-error "Failed to match clause" }
!$ACC END KERNELS ! { dg-error "Unexpected" } !$ACC END KERNELS ! { dg-error "Unexpected" }
!$ACC PARALLEL DEFAULT (, ! { dg-error "Unclassifiable OpenACC directive" } !$ACC PARALLEL DEFAULT (, ! { dg-error "Failed to match clause" }
!$ACC END PARALLEL ! { dg-error "Unexpected" } !$ACC END PARALLEL ! { dg-error "Unexpected" }
!$ACC KERNELS DEFAULT () ! { dg-error "Unclassifiable OpenACC directive" } !$ACC KERNELS DEFAULT () ! { dg-error "Failed to match clause" }
!$ACC END KERNELS ! { dg-error "Unexpected" } !$ACC END KERNELS ! { dg-error "Unexpected" }
!$ACC PARALLEL DEFAULT () ! { dg-error "Unclassifiable OpenACC directive" } !$ACC PARALLEL DEFAULT () ! { dg-error "Failed to match clause" }
!$ACC END PARALLEL ! { dg-error "Unexpected" } !$ACC END PARALLEL ! { dg-error "Unexpected" }
!$ACC KERNELS DEFAULT (,) ! { dg-error "Unclassifiable OpenACC directive" } !$ACC KERNELS DEFAULT (,) ! { dg-error "Failed to match clause" }
!$ACC END KERNELS ! { dg-error "Unexpected" } !$ACC END KERNELS ! { dg-error "Unexpected" }
!$ACC PARALLEL DEFAULT (,) ! { dg-error "Unclassifiable OpenACC directive" } !$ACC PARALLEL DEFAULT (,) ! { dg-error "Failed to match clause" }
!$ACC END PARALLEL ! { dg-error "Unexpected" } !$ACC END PARALLEL ! { dg-error "Unexpected" }
!$ACC KERNELS DEFAULT (FIRSTPRIVATE) ! { dg-error "Unclassifiable OpenACC directive" } !$ACC KERNELS DEFAULT (FIRSTPRIVATE) ! { dg-error "Failed to match clause" }
!$ACC END KERNELS ! { dg-error "Unexpected" } !$ACC END KERNELS ! { dg-error "Unexpected" }
!$ACC PARALLEL DEFAULT (FIRSTPRIVATE) ! { dg-error "Unclassifiable OpenACC directive" } !$ACC PARALLEL DEFAULT (FIRSTPRIVATE) ! { dg-error "Failed to match clause" }
!$ACC END PARALLEL ! { dg-error "Unexpected" } !$ACC END PARALLEL ! { dg-error "Unexpected" }
!$ACC KERNELS DEFAULT (PRIVATE) ! { dg-error "Unclassifiable OpenACC directive" } !$ACC KERNELS DEFAULT (PRIVATE) ! { dg-error "Failed to match clause" }
!$ACC END KERNELS ! { dg-error "Unexpected" } !$ACC END KERNELS ! { dg-error "Unexpected" }
!$ACC PARALLEL DEFAULT (PRIVATE) ! { dg-error "Unclassifiable OpenACC directive" } !$ACC PARALLEL DEFAULT (PRIVATE) ! { dg-error "Failed to match clause" }
!$ACC END PARALLEL ! { dg-error "Unexpected" } !$ACC END PARALLEL ! { dg-error "Unexpected" }
!$ACC KERNELS DEFAULT (SHARED) ! { dg-error "Unclassifiable OpenACC directive" } !$ACC KERNELS DEFAULT (SHARED) ! { dg-error "Failed to match clause" }
!$ACC END KERNELS ! { dg-error "Unexpected" } !$ACC END KERNELS ! { dg-error "Unexpected" }
!$ACC PARALLEL DEFAULT (SHARED) ! { dg-error "Unclassifiable OpenACC directive" } !$ACC PARALLEL DEFAULT (SHARED) ! { dg-error "Failed to match clause" }
!$ACC END PARALLEL ! { dg-error "Unexpected" } !$ACC END PARALLEL ! { dg-error "Unexpected" }
!$ACC KERNELS DEFAULT (NONE ! { dg-error "Unclassifiable OpenACC directive" } !$ACC KERNELS DEFAULT (NONE ! { dg-error "Failed to match clause" }
!$ACC END KERNELS ! { dg-error "Unexpected" } !$ACC END KERNELS ! { dg-error "Unexpected" }
!$ACC PARALLEL DEFAULT (NONE ! { dg-error "Unclassifiable OpenACC directive" } !$ACC PARALLEL DEFAULT (NONE ! { dg-error "Failed to match clause" }
!$ACC END PARALLEL ! { dg-error "Unexpected" } !$ACC END PARALLEL ! { dg-error "Unexpected" }
!$ACC KERNELS DEFAULT (NONE NONE) ! { dg-error "Unclassifiable OpenACC directive" } !$ACC KERNELS DEFAULT (NONE NONE) ! { dg-error "Failed to match clause" }
!$ACC END KERNELS ! { dg-error "Unexpected" } !$ACC END KERNELS ! { dg-error "Unexpected" }
!$ACC PARALLEL DEFAULT (NONE NONE) ! { dg-error "Unclassifiable OpenACC directive" } !$ACC PARALLEL DEFAULT (NONE NONE) ! { dg-error "Failed to match clause" }
!$ACC END PARALLEL ! { dg-error "Unexpected" } !$ACC END PARALLEL ! { dg-error "Unexpected" }
!$ACC KERNELS DEFAULT (NONE, NONE) ! { dg-error "Unclassifiable OpenACC directive" } !$ACC KERNELS DEFAULT (NONE, NONE) ! { dg-error "Failed to match clause" }
!$ACC END KERNELS ! { dg-error "Unexpected" } !$ACC END KERNELS ! { dg-error "Unexpected" }
!$ACC PARALLEL DEFAULT (NONE, NONE) ! { dg-error "Unclassifiable OpenACC directive" } !$ACC PARALLEL DEFAULT (NONE, NONE) ! { dg-error "Failed to match clause" }
!$ACC END PARALLEL ! { dg-error "Unexpected" } !$ACC END PARALLEL ! { dg-error "Unexpected" }
END SUBROUTINE F1 END SUBROUTINE F1
...@@ -28,7 +28,7 @@ contains ...@@ -28,7 +28,7 @@ contains
!$acc enter data !$acc enter data
!$acc enter data if (.false.) !$acc enter data if (.false.)
!$acc enter data if (l) !$acc enter data if (l)
!$acc enter data if (.false.) if (l) ! { dg-error "Unclassifiable" } !$acc enter data if (.false.) if (l) ! { dg-error "Failed to match clause" }
!$acc enter data if (i) ! { dg-error "LOGICAL" } !$acc enter data if (i) ! { dg-error "LOGICAL" }
!$acc enter data if (1) ! { dg-error "LOGICAL" } !$acc enter data if (1) ! { dg-error "LOGICAL" }
!$acc enter data if (a) ! { dg-error "LOGICAL" } !$acc enter data if (a) ! { dg-error "LOGICAL" }
...@@ -63,7 +63,7 @@ contains ...@@ -63,7 +63,7 @@ contains
!$acc exit data !$acc exit data
!$acc exit data if (.false.) !$acc exit data if (.false.)
!$acc exit data if (l) !$acc exit data if (l)
!$acc exit data if (.false.) if (l) ! { dg-error "Unclassifiable" } !$acc exit data if (.false.) if (l) ! { dg-error "Failed to match clause" }
!$acc exit data if (i) ! { dg-error "LOGICAL" } !$acc exit data if (i) ! { dg-error "LOGICAL" }
!$acc exit data if (1) ! { dg-error "LOGICAL" } !$acc exit data if (1) ! { dg-error "LOGICAL" }
!$acc exit data if (a) ! { dg-error "LOGICAL" } !$acc exit data if (a) ! { dg-error "LOGICAL" }
......
...@@ -6,7 +6,7 @@ program test ...@@ -6,7 +6,7 @@ program test
logical :: x logical :: x
integer :: i integer :: i
!$acc parallel if ! { dg-error "Unclassifiable OpenACC directive" } !$acc parallel if ! { dg-error "Failed to match clause" }
!$acc parallel if () ! { dg-error "Invalid character" } !$acc parallel if () ! { dg-error "Invalid character" }
!$acc parallel if (i) ! { dg-error "scalar LOGICAL expression" } !$acc parallel if (i) ! { dg-error "scalar LOGICAL expression" }
!$acc end parallel !$acc end parallel
...@@ -14,11 +14,11 @@ program test ...@@ -14,11 +14,11 @@ program test
!$acc end parallel !$acc end parallel
!$acc kernels if (i) ! { dg-error "scalar LOGICAL expression" } !$acc kernels if (i) ! { dg-error "scalar LOGICAL expression" }
!$acc end kernels !$acc end kernels
!$acc kernels if ! { dg-error "Unclassifiable OpenACC directive" } !$acc kernels if ! { dg-error "Failed to match clause" }
!$acc kernels if () ! { dg-error "Invalid character" } !$acc kernels if () ! { dg-error "Invalid character" }
!$acc kernels if (1) ! { dg-error "scalar LOGICAL expression" } !$acc kernels if (1) ! { dg-error "scalar LOGICAL expression" }
!$acc end kernels !$acc end kernels
!$acc data if ! { dg-error "Unclassifiable OpenACC directive" } !$acc data if ! { dg-error "Failed to match clause" }
!$acc data if () ! { dg-error "Invalid character" } !$acc data if () ! { dg-error "Invalid character" }
!$acc data if (i) ! { dg-error "scalar LOGICAL expression" } !$acc data if (i) ! { dg-error "scalar LOGICAL expression" }
!$acc end data !$acc end data
...@@ -26,9 +26,9 @@ program test ...@@ -26,9 +26,9 @@ program test
!$acc end data !$acc end data
! at most one if clause may appear ! at most one if clause may appear
!$acc parallel if (.false.) if (.false.) { dg-error "Unclassifiable OpenACC directive" } !$acc parallel if (.false.) if (.false.) { dg-error "Failed to match clause" }
!$acc kernels if (.false.) if (.false.) { dg-error "Unclassifiable OpenACC directive" } !$acc kernels if (.false.) if (.false.) { dg-error "Failed to match clause" }
!$acc data if (.false.) if (.false.) { dg-error "Unclassifiable OpenACC directive" } !$acc data if (.false.) if (.false.) { dg-error "Failed to match clause" }
!$acc parallel if (x) !$acc parallel if (x)
!$acc end parallel !$acc end parallel
...@@ -49,4 +49,4 @@ program test ...@@ -49,4 +49,4 @@ program test
!$acc data if (i.gt.1) !$acc data if (i.gt.1)
!$acc end data !$acc end data
end program test end program test
\ No newline at end of file
...@@ -24,7 +24,7 @@ program test ...@@ -24,7 +24,7 @@ program test
!$acc parallel private (i) private (j) !$acc parallel private (i) private (j)
!$acc end parallel !$acc end parallel
!$acc parallel private ! { dg-error "Unclassifiable OpenACC directive" } !$acc parallel private ! { dg-error "Failed to match clause" }
!$acc parallel private() ! { dg-error "Syntax error" } !$acc parallel private() ! { dg-error "Syntax error" }
...@@ -56,7 +56,7 @@ program test ...@@ -56,7 +56,7 @@ program test
!$acc parallel firstprivate (i) firstprivate (j) !$acc parallel firstprivate (i) firstprivate (j)
!$acc end parallel !$acc end parallel
!$acc parallel firstprivate ! { dg-error "Unclassifiable OpenACC directive" } !$acc parallel firstprivate ! { dg-error "Failed to match clause" }
!$acc parallel firstprivate() ! { dg-error "Syntax error" } !$acc parallel firstprivate() ! { dg-error "Syntax error" }
...@@ -91,7 +91,7 @@ program test ...@@ -91,7 +91,7 @@ program test
!$acc host_data use_device (i) use_device (j) ! { dg-error "neither a POINTER nor an array" } !$acc host_data use_device (i) use_device (j) ! { dg-error "neither a POINTER nor an array" }
!$acc end host_data !$acc end host_data
!$acc host_data use_device ! { dg-error "Unclassifiable OpenACC directive" } !$acc host_data use_device ! { dg-error "Failed to match clause" }
!$acc host_data use_device() ! { dg-error "Syntax error" } !$acc host_data use_device() ! { dg-error "Syntax error" }
......
...@@ -10,7 +10,7 @@ contains ...@@ -10,7 +10,7 @@ contains
!$acc end data ! { dg-error "Unexpected" } !$acc end data ! { dg-error "Unexpected" }
!$acc data deviceptr (10) ! { dg-error "Syntax error" } !$acc data deviceptr (10) ! { dg-error "Syntax error" }
!$acc end data ! { dg-error "Unexpected" } !$acc end data ! { dg-error "Unexpected" }
!$acc data private (10) ! { dg-error "Unclassifiable" } !$acc data private (10) ! { dg-error "Failed to match clause" }
!$acc end data ! { dg-error "Unexpected" } !$acc end data ! { dg-error "Unexpected" }
!$acc host_data use_device (10) ! { dg-error "Syntax error" } !$acc host_data use_device (10) ! { dg-error "Syntax error" }
!$acc end host_data ! { dg-error "Unexpected" } !$acc end host_data ! { dg-error "Unexpected" }
......
...@@ -3,7 +3,7 @@ program test ...@@ -3,7 +3,7 @@ program test
integer :: i, j integer :: i, j
!$acc kernels !$acc kernels
!$acc loop tile ! { dg-error "Unclassifiable" } !$acc loop tile ! { dg-error "Failed to match clause" }
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc loop tile() ! { dg-error "Syntax error" } !$acc loop tile() ! { dg-error "Syntax error" }
...@@ -65,7 +65,7 @@ program test ...@@ -65,7 +65,7 @@ program test
ENDDO ENDDO
!$acc end kernels !$acc end kernels
!$acc kernels loop tile ! { dg-error "Unclassifiable" } !$acc kernels loop tile ! { dg-error "Failed to match clause" }
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc kernels loop tile() ! { dg-error "Syntax error" } !$acc kernels loop tile() ! { dg-error "Syntax error" }
......
...@@ -3,7 +3,7 @@ program test ...@@ -3,7 +3,7 @@ program test
integer :: i, j integer :: i, j
!$acc parallel !$acc parallel
!$acc loop tile ! { dg-error "Unclassifiable" } !$acc loop tile ! { dg-error "Failed to match clause" }
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc loop tile() ! { dg-error "Syntax error" } !$acc loop tile() ! { dg-error "Syntax error" }
...@@ -56,7 +56,7 @@ program test ...@@ -56,7 +56,7 @@ program test
ENDDO ENDDO
!$acc end parallel !$acc end parallel
!$acc parallel loop tile ! { dg-error "Unclassifiable" } !$acc parallel loop tile ! { dg-error "Failed to match clause" }
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc parallel loop tile() ! { dg-error "Syntax error" } !$acc parallel loop tile() ! { dg-error "Syntax error" }
......
...@@ -30,13 +30,13 @@ program test ...@@ -30,13 +30,13 @@ program test
!$acc loop gang(num:num, static:1) !$acc loop gang(num:num, static:1)
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc loop gang(static:*, num:5, static:5) ! { dg-error "Unclassifiable OpenACC directive" } !$acc loop gang(static:*, num:5, static:5) ! { dg-error "Failed to match clause" }
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc loop gang(1, num:2, static:3) ! { dg-error "Unclassifiable OpenACC directive" } !$acc loop gang(1, num:2, static:3) ! { dg-error "Failed to match clause" }
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc loop gang(num:num static:1) ! { dg-error "Unclassifiable OpenACC directive" } !$acc loop gang(num:num static:1) ! { dg-error "Failed to match clause" }
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc loop gang(num) !$acc loop gang(num)
...@@ -45,7 +45,7 @@ program test ...@@ -45,7 +45,7 @@ program test
!$acc loop gang(num:num+1, static:1+num) !$acc loop gang(num:num+1, static:1+num)
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc loop gang(length:num) ! { dg-error "Unclassifiable OpenACC directive" } !$acc loop gang(length:num) ! { dg-error "Failed to match clause" }
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
...@@ -58,19 +58,19 @@ program test ...@@ -58,19 +58,19 @@ program test
!$acc loop worker (num) !$acc loop worker (num)
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc loop worker (static:num) ! { dg-error "Unclassifiable OpenACC directive" } !$acc loop worker (static:num) ! { dg-error "Failed to match clause" }
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc loop worker (num:,) ! { dg-error "Invalid character" } !$acc loop worker (num:,) ! { dg-error "Invalid character" }
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc loop worker (num:num:num) ! { dg-error "Unclassifiable OpenACC directive" } !$acc loop worker (num:num:num) ! { dg-error "Failed to match clause" }
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc loop worker (num:num*num) !$acc loop worker (num:num*num)
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc loop worker (length:num*num) ! { dg-error "Unclassifiable OpenACC directive" } !$acc loop worker (length:num*num) ! { dg-error "Failed to match clause" }
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc loop worker (num:*) ! { dg-error "Invalid character" } !$acc loop worker (num:*) ! { dg-error "Invalid character" }
...@@ -89,13 +89,13 @@ program test ...@@ -89,13 +89,13 @@ program test
!$acc loop vector (length) !$acc loop vector (length)
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc loop vrctor (static:num) ! { dg-error "Unclassifiable OpenACC directive" } !$acc loop vrctor (static:num) ! { dg-error "Failed to match clause" }
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc loop vector (length:,) ! { dg-error "Invalid character" } !$acc loop vector (length:,) ! { dg-error "Invalid character" }
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc loop vector (length:num:num) ! { dg-error "Unclassifiable OpenACC directive" } !$acc loop vector (length:num:num) ! { dg-error "Failed to match clause" }
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc loop vector (length:static*num) !$acc loop vector (length:static*num)
...@@ -107,7 +107,7 @@ program test ...@@ -107,7 +107,7 @@ program test
!$acc loop vector (length:32) !$acc loop vector (length:32)
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc loop vector (num:num*num) ! { dg-error "Unclassifiable OpenACC directive" } !$acc loop vector (num:num*num) ! { dg-error "Failed to match clause" }
DO i = 1,10 DO i = 1,10
ENDDO ENDDO
!$acc loop vector (length:*) ! { dg-error "Invalid character" } !$acc loop vector (length:*) ! { dg-error "Invalid character" }
......
...@@ -16,8 +16,8 @@ program test ...@@ -16,8 +16,8 @@ program test
!$acc parallel async(i) !$acc parallel async(i)
!$acc end parallel !$acc end parallel
!$acc kernels async(0, 1) { dg-error "Unclassifiable" } !$acc kernels async(0, 1) { dg-error "Failed to match clause" }
!$acc parallel async(0, 1) { dg-error "Unclassifiable" } !$acc parallel async(0, 1) { dg-error "Failed to match clause" }
!$acc kernels async !$acc kernels async
!$acc end kernels !$acc end kernels
...@@ -37,11 +37,11 @@ program test ...@@ -37,11 +37,11 @@ program test
!$acc kernels async() { dg-error "Invalid character" } !$acc kernels async() { dg-error "Invalid character" }
!$acc parallel async() { dg-error "Invalid character" } !$acc parallel async() { dg-error "Invalid character" }
!$acc kernels async("a") { dg-error "Unclassifiable" } !$acc kernels async("a") { dg-error "Failed to match clause" }
!$acc parallel async("a") { dg-error "Unclassifiable" } !$acc parallel async("a") { dg-error "Failed to match clause" }
!$acc kernels async(.true.) { dg-error "Unclassifiable" } !$acc kernels async(.true.) { dg-error "Failed to match clause" }
!$acc parallel async(.true.) { dg-error "Unclassifiable" } !$acc parallel async(.true.) { dg-error "Failed to match clause" }
! default(none) ! default(none)
!$acc kernels default(none) !$acc kernels default(none)
...@@ -59,17 +59,17 @@ program test ...@@ -59,17 +59,17 @@ program test
!$acc parallel default ( none ) !$acc parallel default ( none )
!$acc end parallel !$acc end parallel
!$acc kernels default { dg-error "Unclassifiable" } !$acc kernels default { dg-error "Failed to match clause" }
!$acc parallel default { dg-error "Unclassifiable" } !$acc parallel default { dg-error "Failed to match clause" }
!$acc kernels default() { dg-error "Unclassifiable" } !$acc kernels default() { dg-error "Failed to match clause" }
!$acc parallel default() { dg-error "Unclassifiable" } !$acc parallel default() { dg-error "Failed to match clause" }
!$acc kernels default(i) { dg-error "Unclassifiable" } !$acc kernels default(i) { dg-error "Failed to match clause" }
!$acc parallel default(i) { dg-error "Unclassifiable" } !$acc parallel default(i) { dg-error "Failed to match clause" }
!$acc kernels default(1) { dg-error "Unclassifiable" } !$acc kernels default(1) { dg-error "Failed to match clause" }
!$acc parallel default(1) { dg-error "Unclassifiable" } !$acc parallel default(1) { dg-error "Failed to match clause" }
! Wait ! Wait
!$acc kernels wait (l) ! { dg-error "INTEGER" } !$acc kernels wait (l) ! { dg-error "INTEGER" }
......
...@@ -108,7 +108,7 @@ subroutine subr4 (x) ...@@ -108,7 +108,7 @@ subroutine subr4 (x)
end subroutine subr4 end subroutine subr4
subroutine subr10 (x) subroutine subr10 (x)
!$acc routine (subr10) device ! { dg-error "Unclassifiable OpenACC directive" } !$acc routine (subr10) device ! { dg-error "Failed to match clause" }
integer, intent(inout) :: x integer, intent(inout) :: x
if (x < 1) then if (x < 1) then
x = 1 x = 1
......
...@@ -2,5 +2,5 @@ ...@@ -2,5 +2,5 @@
program test program test
! only one directive-name may appear in directive ! only one directive-name may appear in directive
!$acc parallel kernels ! { dg-error "Unclassifiable OpenACC directive" } !$acc parallel kernels ! { dg-error "Failed to match clause" }
end end
\ No newline at end of file
...@@ -67,7 +67,7 @@ program test ...@@ -67,7 +67,7 @@ program test
!$acc end kernels !$acc end kernels
!$acc parallel num_gangs ! { dg-error "Unclassifiable OpenACC directive" } !$acc parallel num_gangs ! { dg-error "Failed to match clause" }
!$acc parallel num_gangs(3) !$acc parallel num_gangs(3)
!$acc end parallel !$acc end parallel
...@@ -95,7 +95,7 @@ program test ...@@ -95,7 +95,7 @@ program test
!$acc parallel num_gangs("1") ! { dg-error "scalar INTEGER expression" } !$acc parallel num_gangs("1") ! { dg-error "scalar INTEGER expression" }
!$acc end parallel !$acc end parallel
!$acc kernels num_gangs ! { dg-error "Unclassifiable OpenACC directive" } !$acc kernels num_gangs ! { dg-error "Failed to match clause" }
!$acc kernels num_gangs(3) !$acc kernels num_gangs(3)
!$acc end kernels !$acc end kernels
...@@ -124,7 +124,7 @@ program test ...@@ -124,7 +124,7 @@ program test
!$acc end kernels !$acc end kernels
!$acc parallel num_workers ! { dg-error "Unclassifiable OpenACC directive" } !$acc parallel num_workers ! { dg-error "Failed to match clause" }
!$acc parallel num_workers(3) !$acc parallel num_workers(3)
!$acc end parallel !$acc end parallel
...@@ -152,7 +152,7 @@ program test ...@@ -152,7 +152,7 @@ program test
!$acc parallel num_workers("1") ! { dg-error "scalar INTEGER expression" } !$acc parallel num_workers("1") ! { dg-error "scalar INTEGER expression" }
!$acc end parallel !$acc end parallel
!$acc kernels num_workers ! { dg-error "Unclassifiable OpenACC directive" } !$acc kernels num_workers ! { dg-error "Failed to match clause" }
!$acc kernels num_workers(3) !$acc kernels num_workers(3)
!$acc end kernels !$acc end kernels
...@@ -181,7 +181,7 @@ program test ...@@ -181,7 +181,7 @@ program test
!$acc end kernels !$acc end kernels
!$acc parallel vector_length ! { dg-error "Unclassifiable OpenACC directive" } !$acc parallel vector_length ! { dg-error "Failed to match clause" }
!$acc parallel vector_length(3) !$acc parallel vector_length(3)
!$acc end parallel !$acc end parallel
...@@ -209,7 +209,7 @@ program test ...@@ -209,7 +209,7 @@ program test
!$acc parallel vector_length("1") ! { dg-error "scalar INTEGER expression" } !$acc parallel vector_length("1") ! { dg-error "scalar INTEGER expression" }
!$acc end parallel !$acc end parallel
!$acc kernels vector_length ! { dg-error "Unclassifiable OpenACC directive" } !$acc kernels vector_length ! { dg-error "Failed to match clause" }
!$acc kernels vector_length(3) !$acc kernels vector_length(3)
!$acc end kernels !$acc end kernels
......
...@@ -24,7 +24,7 @@ subroutine parloop ...@@ -24,7 +24,7 @@ subroutine parloop
end do end do
end do end do
!$acc parallel loop tile ! { dg-error "Unclassifiable" } !$acc parallel loop tile ! { dg-error "Failed to match clause" }
do i = 1, n do i = 1, n
end do end do
...@@ -92,7 +92,7 @@ subroutine par ...@@ -92,7 +92,7 @@ subroutine par
integer i, j, k integer i, j, k
!$acc parallel !$acc parallel
!$acc loop tile ! { dg-error "Unclassifiable" } !$acc loop tile ! { dg-error "Failed to match clause" }
do i = 1, n do i = 1, n
end do end do
...@@ -173,7 +173,7 @@ subroutine kern ...@@ -173,7 +173,7 @@ subroutine kern
integer i, j, k integer i, j, k
!$acc kernels !$acc kernels
!$acc loop tile ! { dg-error "Unclassifiable" } !$acc loop tile ! { dg-error "Failed to match clause" }
do i = 1, n do i = 1, n
end do end do
...@@ -275,7 +275,7 @@ subroutine kernsloop ...@@ -275,7 +275,7 @@ subroutine kernsloop
end do end do
end do end do
!$acc kernels loop tile ! { dg-error "Unclassifiable" } !$acc kernels loop tile ! { dg-error "Failed to match clause" }
do i = 1, n do i = 1, n
end do end do
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
subroutine t1 subroutine t1
implicit none implicit none
!$acc routine gang if_present ! { dg-error "Unclassifiable OpenACC directive" } !$acc routine gang if_present ! { dg-error "Failed to match clause" }
integer a, b, c(10) integer a, b, c(10)
real, allocatable :: x, y, z(:) real, allocatable :: x, y, z(:)
...@@ -12,10 +12,10 @@ subroutine t1 ...@@ -12,10 +12,10 @@ subroutine t1
allocate (x, y, z(100)) allocate (x, y, z(100))
!$acc enter data copyin(a) if_present ! { dg-error "Unclassifiable OpenACC directive" } !$acc enter data copyin(a) if_present ! { dg-error "Failed to match clause" }
!$acc exit data copyout(a) if_present ! { dg-error "Unclassifiable OpenACC directive" } !$acc exit data copyout(a) if_present ! { dg-error "Failed to match clause" }
!$acc data copy(a) if_present ! { dg-error "Unclassifiable OpenACC directive" } !$acc data copy(a) if_present ! { dg-error "Failed to match clause" }
!$acc end data ! { dg-error "Unexpected ..ACC END DATA statement" } !$acc end data ! { dg-error "Unexpected ..ACC END DATA statement" }
!$acc declare link(a) if_present ! { dg-error "Unexpected junk after" } !$acc declare link(a) if_present ! { dg-error "Unexpected junk after" }
...@@ -23,7 +23,7 @@ subroutine t1 ...@@ -23,7 +23,7 @@ subroutine t1
!$acc init if_present ! { dg-error "Unclassifiable OpenACC directive" } !$acc init if_present ! { dg-error "Unclassifiable OpenACC directive" }
!$acc shutdown if_present ! { dg-error "Unclassifiable OpenACC directive" } !$acc shutdown if_present ! { dg-error "Unclassifiable OpenACC directive" }
!$acc update self(a) device_type(nvidia) device(b) if_present ! { dg-error "Unclassifiable OpenACC directive" } !$acc update self(a) device_type(nvidia) device(b) if_present ! { dg-error "Failed to match clause" }
end subroutine t1 end subroutine t1
subroutine t2 subroutine t2
...@@ -35,17 +35,17 @@ subroutine t2 ...@@ -35,17 +35,17 @@ subroutine t2
c(:) = -1 c(:) = -1
!$acc parallel !$acc parallel
!$acc loop if_present ! { dg-error "Unclassifiable OpenACC directive" } !$acc loop if_present ! { dg-error "Failed to match clause" }
do b = 1, 10 do b = 1, 10
end do end do
!$acc end parallel !$acc end parallel
!$acc kernels loop if_present ! { dg-error "Unclassifiable OpenACC directive" } !$acc kernels loop if_present ! { dg-error "Failed to match clause" }
do b = 1, 10 do b = 1, 10
end do end do
!$acc end kernels loop ! { dg-error "Unexpected ..ACC END KERNELS LOOP statement" } !$acc end kernels loop ! { dg-error "Unexpected ..ACC END KERNELS LOOP statement" }
!$acc parallel loop if_present ! { dg-error "Unclassifiable OpenACC directive" } !$acc parallel loop if_present ! { dg-error "Failed to match clause" }
do b = 1, 10 do b = 1, 10
end do end do
!$acc end parallel loop ! { dg-error "Unexpected ..ACC END PARALLEL LOOP statement" } !$acc end parallel loop ! { dg-error "Unexpected ..ACC END PARALLEL LOOP statement" }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
subroutine fn1 (x) subroutine fn1 (x)
integer :: x integer :: x
!$omp declare simd (fn1) inbranch notinbranch uniform (x) ! { dg-error "Unclassifiable OpenMP directive" } !$omp declare simd (fn1) inbranch notinbranch uniform (x) ! { dg-error "Failed to match clause" }
end subroutine fn1 end subroutine fn1
subroutine fn2 (x) subroutine fn2 (x)
!$omp declare simd (fn100) ! { dg-error "should refer to containing procedure" } !$omp declare simd (fn100) ! { dg-error "should refer to containing procedure" }
......
...@@ -21,20 +21,20 @@ PROGRAM test_omp ...@@ -21,20 +21,20 @@ PROGRAM test_omp
!$OMP END PARALLEL !$OMP END PARALLEL
!$OMP PARALLEL & ! { dg-error "Unclassifiable OpenMP" } !$OMP PARALLEL & ! { dg-error "Failed to match clause" }
!$ NUM_THREADS(2) !$ NUM_THREADS(2)
!$OMP END PARALLEL ! { dg-error "Unexpected" } !$OMP END PARALLEL ! { dg-error "Unexpected" }
!$OMP PARALLEL & ! { dg-error "Unclassifiable OpenMP" } !$OMP PARALLEL & ! { dg-error "Failed to match clause" }
!$ & NUM_THREADS(2) ! { dg-error "Invalid character" } !$ & NUM_THREADS(2) ! { dg-error "Invalid character" }
!$OMP END PARALLEL ! { dg-error "Unexpected" } !$OMP END PARALLEL ! { dg-error "Unexpected" }
!$OMP PARALLEL & ! { dg-error "Unclassifiable OpenMP" } !$OMP PARALLEL & ! { dg-error "Failed to match clause" }
! !
!$ NUM_THREADS(2) !$ NUM_THREADS(2)
!$OMP END PARALLEL ! { dg-error "Unexpected" } !$OMP END PARALLEL ! { dg-error "Unexpected" }
!$OMP PARALLEL & ! { dg-error "Unclassifiable OpenMP" } !$OMP PARALLEL & ! { dg-error "Failed to match clause" }
! !
!$ & NUM_THREADS(2) ! { dg-error "Invalid character" } !$ & NUM_THREADS(2) ! { dg-error "Invalid character" }
!$OMP END PARALLEL ! { dg-error "Unexpected" } !$OMP END PARALLEL ! { dg-error "Unexpected" }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment