= c_omp_categorize_directive (directive[0],
directive[1],
directive[2]);
- if (dir == NULL
- || dir->kind == C_OMP_DIR_DECLARATIVE
- || dir->kind == C_OMP_DIR_INFORMATIONAL
- || dir->kind == C_OMP_DIR_META
- || dir->id == PRAGMA_OMP_END
- || (!dir->second && directive[1])
- || (!dir->third && directive[2]))
+ if (dir
+ && (dir->kind == C_OMP_DIR_DECLARATIVE
+ || dir->kind == C_OMP_DIR_INFORMATIONAL
+ || dir->kind == C_OMP_DIR_META))
+ error_at (dloc, "invalid OpenMP directive name in "
+ "%qs clause argument: declarative, "
+ "informational, and meta directives "
+ "not permitted", p);
+ else if (dir == NULL
+ || dir->id == PRAGMA_OMP_END
+ || (!dir->second && directive[1])
+ || (!dir->third && directive[2]))
error_at (dloc, "unknown OpenMP directive name in "
"%qs clause argument", p);
else
= c_omp_categorize_directive (directive[0],
directive[1],
directive[2]);
- if (dir == NULL
- || dir->kind == C_OMP_DIR_DECLARATIVE
- || dir->kind == C_OMP_DIR_INFORMATIONAL
- || dir->kind == C_OMP_DIR_META
+ if (dir
+ && (dir->kind == C_OMP_DIR_DECLARATIVE
+ || dir->kind == C_OMP_DIR_INFORMATIONAL
+ || dir->kind == C_OMP_DIR_META))
+ error_at (dloc, "invalid OpenMP directive name in "
+ "%qs clause argument: declarative, "
+ "informational, and meta directives "
+ "not permitted", p);
+ else if (dir == NULL
|| dir->id == PRAGMA_OMP_END
|| (!dir->second && directive[1])
|| (!dir->third && directive[2]))
|| kind == GFC_OMP_DIR_META)
{
gfc_error ("Invalid %qs directive at %L in %s clause: declarative, "
- "informational and meta directives not permitted",
+ "informational, and meta directives not permitted",
gfc_ascii_statement (st, true), &old_loc,
is_absent ? "ABSENT" : "CONTAINS");
return MATCH_ERROR;
;
#pragma omp assume contains (target enter data, target exit data) absent (target enter data, parallel) /* { dg-error "'target enter data' directive mentioned in both 'absent' and 'contains' clauses" } */
;
- #pragma omp assume contains (declare target) /* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
+ #pragma omp assume contains (declare target) /* { dg-error "invalid OpenMP directive name in 'contains' clause argument" } */
;
#pragma omp assume absent (parallel for simd) /* { dg-error "unknown OpenMP directive name in 'absent' clause argument" } */
;
#pragma omp assume contains (target parallel) /* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
;
- #pragma omp assume absent (assume) /* { dg-error "unknown OpenMP directive name in 'absent' clause argument" } */
+ #pragma omp assume absent (assume) /* { dg-error "invalid OpenMP directive name in 'absent' clause argument" } */
;
- #pragma omp assume absent (assumes) /* { dg-error "unknown OpenMP directive name in 'absent' clause argument" } */
+ #pragma omp assume absent (assumes) /* { dg-error "invalid OpenMP directive name in 'absent' clause argument" } */
;
- #pragma omp assume contains (begin assumes) /* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
+ #pragma omp assume contains (begin assumes) /* { dg-error "invalid OpenMP directive name in 'contains' clause argument" } */
;
- #pragma omp assume contains (end assumes) /* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
+ #pragma omp assume contains (end assumes) /* { dg-error "invalid OpenMP directive name in 'contains' clause argument" } */
;
#pragma omp assume contains (foo) /* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
;
#pragma omp assumes contains (target enter data, target exit data) contains (target exit data, parallel) /* { dg-error "target exit data' directive mentioned multiple times in 'contains' clauses" } */
#pragma omp assumes absent (target enter data, target exit data) contains (target exit data, parallel) /* { dg-error "'target exit data' directive mentioned in both 'absent' and 'contains' clauses" } */
#pragma omp assumes contains (target enter data, target exit data) absent (target enter data, parallel) /* { dg-error "'target enter data' directive mentioned in both 'absent' and 'contains' clauses" } */
-#pragma omp assumes contains (declare target) /* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
+#pragma omp assumes contains (declare target) /* { dg-error "invalid OpenMP directive name in 'contains' clause argument" } */
#pragma omp assumes absent (parallel for simd) /* { dg-error "unknown OpenMP directive name in 'absent' clause argument" } */
#pragma omp assumes contains (target parallel) /* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
-#pragma omp assumes absent (assume) /* { dg-error "unknown OpenMP directive name in 'absent' clause argument" } */
-#pragma omp assumes absent (assumes) /* { dg-error "unknown OpenMP directive name in 'absent' clause argument" } */
-#pragma omp assumes contains (begin assumes) /* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
-#pragma omp assumes contains (end assumes) /* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
+#pragma omp assumes absent (assume) /* { dg-error "invalid OpenMP directive name in 'absent' clause argument" } */
+#pragma omp assumes absent (assumes) /* { dg-error "invalid OpenMP directive name in 'absent' clause argument" } */
+#pragma omp assumes contains (begin assumes) /* { dg-error "invalid OpenMP directive name in 'contains' clause argument" } */
+#pragma omp assumes contains (end assumes) /* { dg-error "invalid OpenMP directive name in 'contains' clause argument" } */
#pragma omp assumes contains (foo) /* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
#pragma omp assumes absent (target enter something) /* { dg-error "unknown OpenMP directive name in 'absent' clause argument" } */
#pragma omp assumes foobar /* { dg-error "expected assumption clause" } */
#pragma omp begin assumes contains (target enter data, target exit data) absent (target enter data, parallel) /* { dg-error "'target enter data' directive mentioned in both 'absent' and 'contains' clauses" } */
void f9 (void) {}
#pragma omp end assumes
-#pragma omp begin assumes contains (declare target) /* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
+#pragma omp begin assumes contains (declare target) /* { dg-error "invalid OpenMP directive name in 'contains' clause argument" } */
void f10 (void) {}
#pragma omp end assumes
#pragma omp begin assumes absent (parallel for simd) /* { dg-error "unknown OpenMP directive name in 'absent' clause argument" } */
#pragma omp begin assumes contains (target parallel) /* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
void f12 (void) {}
#pragma omp end assumes
-#pragma omp begin assumes absent (assume) /* { dg-error "unknown OpenMP directive name in 'absent' clause argument" } */
+#pragma omp begin assumes absent (assume) /* { dg-error "invalid OpenMP directive name in 'absent' clause argument" } */
void f13 (void) {}
#pragma omp end assumes
-#pragma omp begin assumes absent (assumes) /* { dg-error "unknown OpenMP directive name in 'absent' clause argument" } */
+#pragma omp begin assumes absent (assumes) /* { dg-error "invalid OpenMP directive name in 'absent' clause argument" } */
void f14 (void) {}
#pragma omp end assumes
-#pragma omp begin assumes contains (begin assumes) /* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
+#pragma omp begin assumes contains (begin assumes) /* { dg-error "invalid OpenMP directive name in 'contains' clause argument" } */
void f15 (void) {}
#pragma omp end assumes
-#pragma omp begin assumes contains (end assumes) /* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
+#pragma omp begin assumes contains (end assumes) /* { dg-error "invalid OpenMP directive name in 'contains' clause argument" } */
void f16 (void) {}
#pragma omp end assumes
#pragma omp begin assumes contains (foo) /* { dg-error "unknown OpenMP directive name in 'contains' clause argument" } */
end module my_omp_lib
subroutine zero()
- !$omp assumes absent (allocate) ! { dg-error "Invalid 'ALLOCATE' directive at .1. in ABSENT clause: declarative, informational and meta directives not permitted" }
+ !$omp assumes absent (allocate) ! { dg-error "Invalid 'ALLOCATE' directive at .1. in ABSENT clause: declarative, informational, and meta directives not permitted" }
- !$omp assume absent (allocate) ! { dg-error "Invalid 'ALLOCATE' directive at .1. in ABSENT clause: declarative, informational and meta directives not permitted" }
+ !$omp assume absent (allocate) ! { dg-error "Invalid 'ALLOCATE' directive at .1. in ABSENT clause: declarative, informational, and meta directives not permitted" }
!!$omp end assume
end
interface
subroutine foo
!$omp assumes contains(target) contains(teams,target) ! { dg-error "'TARGET' directive mentioned multiple times in CONTAINS clause in !.OMP ASSUMES directive" }
- !$omp assumes absent(declare target) ! { dg-error "Invalid 'DECLARE TARGET' directive at .1. in ABSENT clause: declarative, informational and meta directives not permitted" }
+ !$omp assumes absent(declare target) ! { dg-error "Invalid 'DECLARE TARGET' directive at .1. in ABSENT clause: declarative, informational, and meta directives not permitted" }
!$omp assumes absent(parallel) absent(do,simd,parallel,distribute) ! { dg-error "'PARALLEL' directive mentioned multiple times in ABSENT clause in !.OMP ASSUMES directive" }
!$omp assumes contains(barrier,atomic) absent(cancel,simd,atomic,distribute) ! { dg-error "'SIMD' directive mentioned both times in ABSENT and CONTAINS clauses in !.OMP ASSUMES directive" }
end subroutine foo