From 28565fb32202a3b4d166ef86363d0737d077855a Mon Sep 17 00:00:00 2001
From: Thomas Schwinge <thomas@codesourcery.com>
Date: Thu, 30 Apr 2020 09:07:06 +0200
Subject: [PATCH] [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/gimplify.c | 10 +++++-----
gcc/testsuite/c-c++-common/gomp/default-1.c | 8 ++++----
gcc/testsuite/c-c++-common/gomp/defaultmap-3.c | 6 +++---
gcc/testsuite/c-c++-common/gomp/order-4.c | 8 ++++----
gcc/testsuite/g++.dg/gomp/parallel-2.C | 4 ++--
gcc/testsuite/g++.dg/gomp/predetermined-1.C | 14 +++++++-------
gcc/testsuite/g++.dg/gomp/sharing-1.C | 2 +-
gcc/testsuite/gcc.dg/gomp/appendix-a/a.24.1.c | 2 +-
gcc/testsuite/gcc.dg/gomp/parallel-2.c | 4 ++--
gcc/testsuite/gcc.dg/gomp/pr44085.c | 2 +-
gcc/testsuite/gcc.dg/gomp/sharing-1.c | 2 +-
gcc/testsuite/gcc.dg/gomp/vla-1.c | 2 +-
.../gfortran.dg/gomp/appendix-a/a.24.1.f90 | 2 +-
gcc/testsuite/gfortran.dg/gomp/crayptr3.f90 | 2 +-
gcc/testsuite/gfortran.dg/gomp/pr33439.f90 | 7 ++++---
gcc/testsuite/gfortran.dg/gomp/pr44036-1.f90 | 4 ++--
gcc/testsuite/gfortran.dg/gomp/pr44085.f90 | 2 +-
gcc/testsuite/gfortran.dg/gomp/pr44536.f90 | 2 +-
gcc/testsuite/gfortran.dg/gomp/sharing-1.f90 | 2 +-
gcc/testsuite/gfortran.dg/gomp/sharing-2.f90 | 10 +++++-----
gcc/testsuite/gfortran.dg/gomp/sharing-3.f90 | 2 +-
21 files changed, 49 insertions(+), 48 deletions(-)
@@ -7100,13 +7100,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);
}
@@ -7121,7 +7121,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)
@@ -7199,7 +7199,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:
@@ -7469,7 +7469,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
@@ -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
--
2.26.2