+2020-01-22 Jakub Jelinek <jakub@redhat.com>
+
+ * parse.c (parse_omp_structured_block): Handle ST_OMP_TARGET_PARALLEL.
+ * trans-openmp.c (gfc_trans_omp_target)
+ <case EXEC_OMP_TARGET_PARALLEL>: Call pushlevel first.
+
2020-01-22 Jakub Jelinek <jakub@redhat.com>
PR fortran/93329
case ST_OMP_TARGET_DATA:
omp_end_st = ST_OMP_END_TARGET_DATA;
break;
+ case ST_OMP_TARGET_PARALLEL:
+ omp_end_st = ST_OMP_END_TARGET_PARALLEL;
+ break;
case ST_OMP_TARGET_TEAMS:
omp_end_st = ST_OMP_END_TARGET_TEAMS;
break;
{
stmtblock_t iblock;
+ pushlevel ();
gfc_start_block (&iblock);
tree inner_clauses
= gfc_trans_omp_clauses (&block, &clausesa[GFC_OMP_SPLIT_PARALLEL],
+2020-01-22 Jakub Jelinek <jakub@redhat.com>
+
+ * gfortran.dg/gomp/target-parallel1.f90: New test.
+ * gfortran.dg/goacc/pr93329.f90: Enable commented out target parallel
+ test.
+
2020-01-22 Jakub Jelinek <jakub@redhat.com>
PR fortran/93329
!$omp target exit data map(from: x) ! { dg-error "OMP TARGET EXIT DATA directive cannot be specified within" }
!$acc end kernels
!$acc kernels
-!!$omp target parallel
-!!$omp end target parallel
+!$omp target parallel ! { dg-error "OMP TARGET PARALLEL directive cannot be specified within" }
+!$omp end target parallel
!$acc end kernels
!$acc kernels
!$omp target parallel do ! { dg-error "OMP TARGET PARALLEL DO directive cannot be specified within" }
--- /dev/null
+!$omp target parallel
+ print *, 'Hello, world'
+!$omp end target parallel
+end