[OpenMP, gimplifier] 'inform' after 'error' diagnostic
This is not a thorough review of the code, just a few cases I noticed while scanning 'gcc/gimplify.c' for "enclosing". gcc/ * gimplify.c (omp_notice_threadprivate_variable) (omp_default_clause, omp_notice_variable): 'inform' after 'error' diagnostic. Adjust all users. gcc/testsuite/ * c-c++-common/gomp/default-1.c: Update. * c-c++-common/gomp/defaultmap-3.c: Likewise. * c-c++-common/gomp/order-4.c: Likewise. * g++.dg/gomp/parallel-2.C: Likewise. * g++.dg/gomp/predetermined-1.C: Likewise. * g++.dg/gomp/sharing-1.C: Likewise. * gcc.dg/gomp/appendix-a/a.24.1.c: Likewise. * gcc.dg/gomp/parallel-2.c: Likewise. * gcc.dg/gomp/pr44085.c: Likewise. * gcc.dg/gomp/sharing-1.c: Likewise. * gcc.dg/gomp/vla-1.c: Likewise. * gfortran.dg/gomp/appendix-a/a.24.1.f90: Likewise. * gfortran.dg/gomp/crayptr3.f90: Likewise. * gfortran.dg/gomp/pr33439.f90: Likewise. * gfortran.dg/gomp/pr44036-1.f90: Likewise. * gfortran.dg/gomp/pr44085.f90: Likewise. * gfortran.dg/gomp/pr44536.f90: Likewise. * gfortran.dg/gomp/pr94672.f90: Likewise. * gfortran.dg/gomp/sharing-1.f90: Likewise. * gfortran.dg/gomp/sharing-2.f90: Likewise. * gfortran.dg/gomp/sharing-3.f90: Likewise.
This commit is contained in:
parent
5864930754
commit
4f2ab6b89e
22 changed files with 54 additions and 53 deletions
|
@ -7096,13 +7096,13 @@ omp_notice_threadprivate_variable (struct gimplify_omp_ctx *ctx, tree decl,
|
|||
{
|
||||
error ("threadprivate variable %qE used in a region with"
|
||||
" %<order(concurrent)%> clause", DECL_NAME (decl));
|
||||
error_at (octx->location, "enclosing region");
|
||||
inform (octx->location, "enclosing region");
|
||||
}
|
||||
else
|
||||
{
|
||||
error ("threadprivate variable %qE used in target region",
|
||||
DECL_NAME (decl));
|
||||
error_at (octx->location, "enclosing target region");
|
||||
inform (octx->location, "enclosing target region");
|
||||
}
|
||||
splay_tree_insert (octx->variables, (splay_tree_key)decl, 0);
|
||||
}
|
||||
|
@ -7117,7 +7117,7 @@ omp_notice_threadprivate_variable (struct gimplify_omp_ctx *ctx, tree decl,
|
|||
{
|
||||
error ("threadprivate variable %qE used in untied task",
|
||||
DECL_NAME (decl));
|
||||
error_at (ctx->location, "enclosing task");
|
||||
inform (ctx->location, "enclosing task");
|
||||
splay_tree_insert (ctx->variables, (splay_tree_key)decl, 0);
|
||||
}
|
||||
if (decl2)
|
||||
|
@ -7195,7 +7195,7 @@ omp_default_clause (struct gimplify_omp_ctx *ctx, tree decl,
|
|||
|
||||
error ("%qE not specified in enclosing %qs",
|
||||
DECL_NAME (lang_hooks.decls.omp_report_decl (decl)), rtype);
|
||||
error_at (ctx->location, "enclosing %qs", rtype);
|
||||
inform (ctx->location, "enclosing %qs", rtype);
|
||||
}
|
||||
/* FALLTHRU */
|
||||
case OMP_CLAUSE_DEFAULT_SHARED:
|
||||
|
@ -7476,7 +7476,7 @@ omp_notice_variable (struct gimplify_omp_ctx *ctx, tree decl, bool in_code)
|
|||
tree d = lang_hooks.decls.omp_report_decl (decl);
|
||||
error ("%qE not specified in enclosing %<target%>",
|
||||
DECL_NAME (d));
|
||||
error_at (ctx->location, "enclosing %<target%>");
|
||||
inform (ctx->location, "enclosing %<target%>");
|
||||
}
|
||||
else if (ctx->defaultmap[gdmk]
|
||||
& (GOVD_MAP_0LEN_ARRAY | GOVD_FIRSTPRIVATE))
|
||||
|
|
|
@ -2,20 +2,20 @@ void
|
|||
foo (void)
|
||||
{
|
||||
int x = 0, i;
|
||||
#pragma omp task default(none) /* { dg-error "enclosing 'task'" } */
|
||||
#pragma omp task default(none) /* { dg-message "note: enclosing 'task'" } */
|
||||
{
|
||||
x++; /* { dg-error "'x' not specified in enclosing 'task'" } */
|
||||
}
|
||||
#pragma omp taskloop default(none) /* { dg-error "enclosing 'taskloop'" } */
|
||||
#pragma omp taskloop default(none) /* { dg-message "note: enclosing 'taskloop'" } */
|
||||
for (i = 0; i < 64; i++)
|
||||
{
|
||||
x++; /* { dg-error "'x' not specified in enclosing 'taskloop'" } */
|
||||
}
|
||||
#pragma omp teams default(none) /* { dg-error "enclosing 'teams'" } */
|
||||
#pragma omp teams default(none) /* { dg-message "note: enclosing 'teams'" } */
|
||||
{
|
||||
x++; /* { dg-error "'x' not specified in enclosing 'teams'" } */
|
||||
}
|
||||
#pragma omp parallel default(none) /* { dg-error "enclosing 'parallel'" } */
|
||||
#pragma omp parallel default(none) /* { dg-message "note: enclosing 'parallel'" } */
|
||||
{
|
||||
x++; /* { dg-error "'x' not specified in enclosing 'parallel'" } */
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ f1 (int sc1, struct S ag1, int *pt1)
|
|||
{
|
||||
char ar1[N];
|
||||
foo (ar1);
|
||||
#pragma omp target defaultmap(default:scalar) defaultmap(to:aggregate) defaultmap(none:pointer) /* { dg-error "enclosing 'target'" } */
|
||||
#pragma omp target defaultmap(default:scalar) defaultmap(to:aggregate) defaultmap(none:pointer) /* { dg-message "note: enclosing 'target'" } */
|
||||
bar (sc1, ar1, ag1, pt1); /* { dg-error "'pt1' not specified in enclosing 'target'" } */
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,7 @@ f2 (int sc2, struct S ag2, int *pt2)
|
|||
{
|
||||
char ar2[N];
|
||||
foo (ar2);
|
||||
#pragma omp target defaultmap(none:scalar) defaultmap(from:aggregate) defaultmap(default:pointer) /* { dg-error "enclosing 'target'" } */
|
||||
#pragma omp target defaultmap(none:scalar) defaultmap(from:aggregate) defaultmap(default:pointer) /* { dg-message "note: enclosing 'target'" } */
|
||||
bar (sc2, ar2, ag2, pt2); /* { dg-error "'sc2' not specified in enclosing 'target'" } */
|
||||
}
|
||||
|
||||
|
@ -29,6 +29,6 @@ f3 (int sc3, struct S ag3, int *pt3)
|
|||
{
|
||||
char ar3[N];
|
||||
foo (ar3);
|
||||
#pragma omp target defaultmap(firstprivate:scalar) defaultmap(none:aggregate) defaultmap(to:pointer) /* { dg-error "enclosing 'target'" } */
|
||||
#pragma omp target defaultmap(firstprivate:scalar) defaultmap(none:aggregate) defaultmap(to:pointer) /* { dg-message "note: enclosing 'target'" } */
|
||||
bar (sc3, ar3, ag3, pt3); /* { dg-error "'ar3' not specified in enclosing 'target'" } */
|
||||
} /* { dg-error "'ag3' not specified in enclosing 'target'" "" { target *-*-* } .-1 } */
|
||||
|
|
|
@ -5,7 +5,7 @@ void
|
|||
f1 (void)
|
||||
{
|
||||
int i;
|
||||
#pragma omp simd order(concurrent) /* { dg-error "enclosing region" } */
|
||||
#pragma omp simd order(concurrent) /* { dg-message "note: enclosing region" } */
|
||||
for (i = 0; i < 64; i++)
|
||||
t++; /* { dg-error "threadprivate variable 't' used in a region with 'order\\(concurrent\\)' clause" } */
|
||||
}
|
||||
|
@ -14,8 +14,8 @@ void
|
|||
f2 (void)
|
||||
{
|
||||
int i;
|
||||
#pragma omp for simd order(concurrent) /* { dg-error "enclosing region" } */
|
||||
for (i = 0; i < 64; i++) /* { dg-error "enclosing region" "" { target c++ } } */
|
||||
#pragma omp for simd order(concurrent) /* { dg-message "note: enclosing region" } */
|
||||
for (i = 0; i < 64; i++) /* { dg-message "note: enclosing region" "" { target c++ } } */
|
||||
t++; /* { dg-error "threadprivate variable 't' used in a region with 'order\\(concurrent\\)' clause" } */
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,7 @@ void
|
|||
f3 (void)
|
||||
{
|
||||
int i;
|
||||
#pragma omp for order(concurrent) /* { dg-error "enclosing region" } */
|
||||
#pragma omp for order(concurrent) /* { dg-message "note: enclosing region" } */
|
||||
for (i = 0; i < 64; i++)
|
||||
t++; /* { dg-error "threadprivate variable 't' used in a region with 'order\\(concurrent\\)' clause" } */
|
||||
}
|
||||
|
|
|
@ -4,11 +4,11 @@ void foo()
|
|||
{
|
||||
int i;
|
||||
|
||||
#pragma omp parallel default(none) // { dg-error "enclosing" }
|
||||
#pragma omp parallel default(none) // { dg-message "note: enclosing 'parallel'" }
|
||||
{
|
||||
#pragma omp parallel
|
||||
{
|
||||
#pragma omp parallel default(none) // { dg-error "enclosing" }
|
||||
#pragma omp parallel default(none) // { dg-message "note: enclosing 'parallel'" }
|
||||
{
|
||||
i++; // { dg-error "not specified" }
|
||||
}
|
||||
|
|
|
@ -15,19 +15,19 @@ const A foo (const A d, const C e)
|
|||
const A f;
|
||||
const B b = { 4 };
|
||||
A g;
|
||||
#pragma omp parallel default (none) // { dg-error "enclosing 'parallel'" }
|
||||
#pragma omp parallel default (none) // { dg-message "note: enclosing 'parallel'" }
|
||||
bar (&a); // { dg-error "not specified" }
|
||||
#pragma omp parallel default (none) // { dg-error "enclosing 'parallel'" }
|
||||
#pragma omp parallel default (none) // { dg-message "note: enclosing 'parallel'" }
|
||||
bar (&b); // { dg-error "not specified" }
|
||||
#pragma omp parallel default (none) // { dg-error "enclosing 'parallel'" }
|
||||
#pragma omp parallel default (none) // { dg-message "note: enclosing 'parallel'" }
|
||||
bar (&c); // { dg-error "not specified" }
|
||||
#pragma omp parallel default (none) // { dg-error "enclosing 'parallel'" }
|
||||
#pragma omp parallel default (none) // { dg-message "note: enclosing 'parallel'" }
|
||||
bar (&d); // { dg-error "not specified" }
|
||||
#pragma omp parallel default (none) // { dg-error "enclosing 'parallel'" }
|
||||
#pragma omp parallel default (none) // { dg-message "note: enclosing 'parallel'" }
|
||||
bar (&e); // { dg-error "not specified" }
|
||||
#pragma omp parallel default (none) // { dg-error "enclosing 'parallel'" }
|
||||
#pragma omp parallel default (none) // { dg-message "note: enclosing 'parallel'" }
|
||||
bar (&f); // { dg-error "not specified" }
|
||||
#pragma omp parallel default (none) // { dg-error "enclosing 'parallel'" }
|
||||
#pragma omp parallel default (none) // { dg-message "note: enclosing 'parallel'" }
|
||||
bar (&g); // { dg-error "not specified" }
|
||||
return f;
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@ main (void)
|
|||
*p = 7;
|
||||
s = 6;
|
||||
l = 0;
|
||||
#pragma omp parallel for /* { dg-error "enclosing 'parallel'" } */ \
|
||||
#pragma omp parallel for /* { dg-message "note: enclosing 'parallel'" } */ \
|
||||
default (none) private (p) shared (s)
|
||||
for (i = 0; i < 64; i++)
|
||||
{
|
||||
|
|
|
@ -21,7 +21,7 @@ a24 (int a)
|
|||
is listed in shared clause */
|
||||
z[i] = y;
|
||||
/* { dg-error "'i' not specified" "" { target *-*-* } .-1 } */
|
||||
/* { dg-error "enclosing 'parallel'" "" { target *-*-* } omp_parallel } */
|
||||
/* { dg-message "note: enclosing 'parallel'" "" { target *-*-* } omp_parallel } */
|
||||
/* { dg-error "'y' not specified" "" { target *-*-* } .-3 } */
|
||||
#pragma omp for firstprivate(y)
|
||||
for (i = 0; i < 10; i++)
|
||||
|
|
|
@ -4,11 +4,11 @@ void foo()
|
|||
{
|
||||
int i;
|
||||
|
||||
#pragma omp parallel default(none) // { dg-error "enclosing" }
|
||||
#pragma omp parallel default(none) // { dg-message "note: enclosing 'parallel'" }
|
||||
{
|
||||
#pragma omp parallel
|
||||
{
|
||||
#pragma omp parallel default(none) // { dg-error "enclosing" }
|
||||
#pragma omp parallel default(none) // { dg-message: "note: enclosing 'parallel'" }
|
||||
{
|
||||
i++; // { dg-error "not specified" }
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@ int thr1, thr2;
|
|||
void
|
||||
foo (void)
|
||||
{
|
||||
#pragma omp task untied /* { dg-error "enclosing task" } */
|
||||
#pragma omp task untied /* { dg-message "note: enclosing task" } */
|
||||
{
|
||||
thr1++; /* { dg-error "used in untied task" } */
|
||||
thr2 |= 4; /* { dg-error "used in untied task" } */
|
||||
|
|
|
@ -35,7 +35,7 @@ main (void)
|
|||
*p = 7;
|
||||
s = 6;
|
||||
l = 0;
|
||||
#pragma omp parallel for /* { dg-error "enclosing 'parallel'" } */ \
|
||||
#pragma omp parallel for /* { dg-message "note: enclosing 'parallel'" } */ \
|
||||
default (none) private (p) shared (s)
|
||||
for (i = 0; i < 64; i++)
|
||||
{
|
||||
|
|
|
@ -4,7 +4,7 @@ void foo(int n)
|
|||
{
|
||||
int A[n];
|
||||
|
||||
#pragma omp parallel default(none) // { dg-error "enclosing" }
|
||||
#pragma omp parallel default(none) // { dg-message "note: enclosing 'parallel'" }
|
||||
{
|
||||
A[0] = 0; // { dg-error "'A' not specified" }
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
X=1 ! O.K. - X is THREADPRIVATE
|
||||
Z(I) = Y ! Error - cannot reference I or Y here
|
||||
! { dg-error "'i' not specified" "" { target *-*-* } .-1 } */
|
||||
! { dg-error "enclosing 'parallel'" "" { target *-*-* } omp_parallel } */
|
||||
! { dg-message "note: enclosing 'parallel'" "" { target *-*-* } omp_parallel } */
|
||||
! { dg-error "'y' not specified" "" { target *-*-* } .-3 } */
|
||||
!$OMP DO firstprivate(y)
|
||||
DO I = 1,10
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
a = 1
|
||||
!$omp end parallel
|
||||
|
||||
!$omp parallel default (none) ! { dg-error "enclosing 'parallel'" }
|
||||
!$omp parallel default (none) ! { dg-message "note: enclosing 'parallel'" }
|
||||
a = 1 ! { dg-error "'ip' not specified in enclosing 'parallel'" }
|
||||
!$omp end parallel
|
||||
end
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
subroutine pr33439_1
|
||||
integer :: s, i
|
||||
s = 4
|
||||
!$omp parallel default(none) ! { dg-error "enclosing 'parallel'" }
|
||||
!$omp parallel default(none) ! { dg-message "note: enclosing 'parallel'" }
|
||||
call somethingelse
|
||||
!$omp do schedule(static, s) ! { dg-error "not specified in enclosing 'parallel'" }
|
||||
do i = 1, 8
|
||||
|
@ -18,7 +18,7 @@ end subroutine pr33439_1
|
|||
subroutine pr33439_2
|
||||
integer :: s, i
|
||||
s = 4
|
||||
!$omp parallel default(none) ! { dg-error "enclosing 'parallel'" }
|
||||
!$omp parallel default(none) ! { dg-message "note: enclosing 'parallel'" }
|
||||
!$omp do schedule(static, s) ! { dg-error "not specified in enclosing 'parallel'" }
|
||||
do i = 1, 8
|
||||
call something
|
||||
|
@ -30,7 +30,8 @@ end subroutine pr33439_2
|
|||
subroutine pr33439_3
|
||||
integer :: s, i
|
||||
s = 4
|
||||
!$omp parallel do default(none) schedule(static, s) ! { dg-error "enclosing 'parallel'" }
|
||||
!$omp parallel do default(none) schedule(static, s) ! { dg-message "note: enclosing 'parallel'" }
|
||||
! ! { dg-error "'s' not specified in enclosing 'parallel'" "" { target *-*-* } .-1 }
|
||||
do i = 1, 8
|
||||
call something
|
||||
end do
|
||||
|
|
|
@ -11,14 +11,14 @@ subroutine foo(a, b)
|
|||
!$omp parallel default(none) private (x)
|
||||
x = a(4)
|
||||
!$omp end parallel
|
||||
!$omp parallel default(none) private (x) ! { dg-error "enclosing 'parallel'" }
|
||||
!$omp parallel default(none) private (x) ! { dg-message "note: enclosing 'parallel'" }
|
||||
x = b(5) ! { dg-error "not specified in" }
|
||||
!$omp end parallel
|
||||
!$omp parallel default(none) private (x)
|
||||
x = c(6)
|
||||
!$omp end parallel
|
||||
d => a
|
||||
!$omp parallel default(none) private (x) ! { dg-error "enclosing 'parallel'" }
|
||||
!$omp parallel default(none) private (x) ! { dg-message "note: enclosing 'parallel'" }
|
||||
x = d(7) ! { dg-error "not specified in" }
|
||||
!$omp end parallel
|
||||
end
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
common /thrs/ thr3, thr4
|
||||
!$omp threadprivate (thr1, thr2, /thrs/)
|
||||
|
||||
!$omp task untied ! { dg-error "enclosing task" }
|
||||
!$omp task untied ! { dg-message "note: enclosing task" }
|
||||
thr1 = thr1 + 1 ! { dg-error "used in untied task" }
|
||||
thr2 = thr2 + 2 ! { dg-error "used in untied task" }
|
||||
thr3 = thr3 + 3 ! { dg-error "used in untied task" }
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
subroutine foo (a, i, j)
|
||||
integer, dimension(:) :: a
|
||||
integer :: i, j
|
||||
!$omp parallel default(none) shared(i, j) ! { dg-error "enclosing 'parallel'" }
|
||||
!$omp parallel default(none) shared(i, j) ! { dg-message "note: enclosing 'parallel'" }
|
||||
j=a(i) ! { dg-error "not specified in" }
|
||||
!$omp end parallel
|
||||
end subroutine
|
||||
|
|
|
@ -93,35 +93,35 @@ end subroutine
|
|||
|
||||
subroutine w1 (array)
|
||||
real, optional :: array(:)
|
||||
!$omp parallel default(none) ! { dg-error "enclosing 'parallel'" }
|
||||
!$omp parallel default(none) ! { dg-message "note: enclosing 'parallel'" }
|
||||
if (.not.present (array)) stop 1 ! { dg-error "'array' not specified in enclosing 'parallel'" }
|
||||
!$omp end parallel
|
||||
end subroutine
|
||||
|
||||
subroutine w2 (array2)
|
||||
real, optional :: array2(*)
|
||||
!$omp parallel default(none) ! { dg-error "enclosing 'parallel'" "TODO" { xfail *-*-* } }
|
||||
!$omp parallel default(none) ! { dg-message "note: enclosing 'parallel'" "TODO" { xfail *-*-* } }
|
||||
if (.not.present (array2)) stop 2 ! { dg-error "'array2' not specified in enclosing 'parallel'" "TODO" { xfail *-*-* } }
|
||||
!$omp end parallel
|
||||
end subroutine
|
||||
|
||||
subroutine w3 (arg)
|
||||
real, optional :: arg
|
||||
!$omp parallel default(none) ! { dg-error "enclosing 'parallel'" }
|
||||
!$omp parallel default(none) ! { dg-message "note: enclosing 'parallel'" }
|
||||
if (.not.present (arg)) stop 3 ! { dg-error "'arg' not specified in enclosing 'parallel'" }
|
||||
!$omp end parallel
|
||||
end subroutine
|
||||
|
||||
subroutine w4 (arg2)
|
||||
real, value, optional :: arg2
|
||||
!$omp parallel default(none) ! { dg-error "enclosing 'parallel" "TODO" { xfail *-*-* } }
|
||||
!$omp parallel default(none) ! { dg-message "note: enclosing 'parallel" "TODO" { xfail *-*-* } }
|
||||
if (.not.present (arg2)) stop 4 ! { dg-error "'arg2' not specified in enclosing 'parallel'" "TODO" { xfail *-*-*} }
|
||||
!$omp end parallel
|
||||
end subroutine
|
||||
|
||||
subroutine w5 (array3)
|
||||
real, optional :: array3(..)
|
||||
!$omp parallel default(none) ! { dg-error "enclosing 'parallel'" }
|
||||
!$omp parallel default(none) ! { dg-message "note: enclosing 'parallel'" }
|
||||
if (.not.present (array3)) stop 5 ! { dg-error "'array3' not specified in enclosing 'parallel'" }
|
||||
!$omp end parallel
|
||||
end subroutine
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
!$omp threadprivate (/thrblk/, thrpriv)
|
||||
s = 1
|
||||
!$omp parallel do default (none) &
|
||||
!$omp & private (p) shared (s) ! { dg-error "enclosing 'parallel'" }
|
||||
!$omp & private (p) shared (s) ! { dg-message "note: enclosing 'parallel'" }
|
||||
do i = 1, 64
|
||||
call foo (thrpriv) ! Predetermined - threadprivate
|
||||
call foo (thr) ! Predetermined - threadprivate
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
j = 8
|
||||
end do
|
||||
!$omp end parallel do
|
||||
!$omp parallel default (none) shared (a) ! { dg-error "enclosing 'parallel'" }
|
||||
!$omp parallel default (none) shared (a) ! { dg-message "note: enclosing 'parallel'" }
|
||||
i = 1
|
||||
j = 1
|
||||
k = 1
|
||||
|
@ -28,7 +28,7 @@
|
|||
end do
|
||||
!$omp end single
|
||||
!$omp end parallel
|
||||
!$omp parallel default (none) shared (a) ! { dg-error "enclosing 'parallel'" }
|
||||
!$omp parallel default (none) shared (a) ! { dg-message "note: enclosing 'parallel'" }
|
||||
i = 1 ! { dg-error "not specified in" }
|
||||
j = 1 ! { dg-error "not specified in" }
|
||||
k = 1 ! { dg-error "not specified in" }
|
||||
|
@ -54,21 +54,21 @@
|
|||
j = 1
|
||||
k = 1
|
||||
!$omp end parallel
|
||||
!$omp parallel default (none) shared (a) ! { dg-error "enclosing 'parallel'" }
|
||||
!$omp parallel default (none) shared (a) ! { dg-message "note: enclosing 'parallel'" }
|
||||
i = 1 ! { dg-error "not specified in" }
|
||||
!$omp do
|
||||
do i = 1, 10
|
||||
a(i, 1) = i + 1
|
||||
end do
|
||||
!$omp end parallel
|
||||
!$omp parallel default (none) shared (a) ! { dg-error "enclosing 'parallel'" }
|
||||
!$omp parallel default (none) shared (a) ! { dg-message "note: enclosing 'parallel'" }
|
||||
i = 1 ! { dg-error "not specified in" }
|
||||
!$omp parallel do default (none) shared (a)
|
||||
do i = 1, 10
|
||||
a(i, 1) = i + 1
|
||||
end do
|
||||
!$omp end parallel
|
||||
!$omp parallel default (none) shared (a) ! { dg-error "enclosing 'parallel'" }
|
||||
!$omp parallel default (none) shared (a) ! { dg-message "note: enclosing 'parallel'" }
|
||||
i = 1 ! { dg-error "not specified in" }
|
||||
!$omp parallel default (none) shared (a, i)
|
||||
i = 2
|
||||
|
|
|
@ -25,7 +25,7 @@ subroutine foo (vara, varb, varc, vard, n)
|
|||
vard(1) = 1
|
||||
vare(1) = 1
|
||||
!$omp end parallel
|
||||
!$omp parallel default(none) ! { dg-error "enclosing 'parallel'" }
|
||||
!$omp parallel default(none) ! { dg-message "note: enclosing 'parallel'" }
|
||||
!$omp master
|
||||
vara(1) = 1 ! { dg-error "not specified" }
|
||||
varb(1) = 1 ! Assumed-size is predetermined
|
||||
|
|
Loading…
Add table
Reference in a new issue