Document current '-Wuninitialized'/'-Wmaybe-uninitialized' diagnostics for OpenACC test cases

... including "note: '[...]' was declared here" emitted since recent
commit 9695e1c23b
"Improve -Wuninitialized note location".

For those that seemed incorrect to me, I've placed XFAILed 'dg-bogus'es,
including one more instance of PR77504 etc., and several instances where
for "local variables" of reference-data-type reductions (etc.?) we emit
bogus (?) diagnostics.

For implicit data clauses (including 'firstprivate'), we seem to be missing
diagnostics, so I've placed XFAILed 'dg-warning's.

	gcc/testsuite/
	* c-c++-common/goacc/builtin-goacc-parlevel-id-size.c: Document
	current '-Wuninitialized' diagnostics.
	* c-c++-common/goacc/mdc-1.c: Likewise.
	* c-c++-common/goacc/nested-reductions-1-kernels.c: Likewise.
	* c-c++-common/goacc/nested-reductions-1-parallel.c: Likewise.
	* c-c++-common/goacc/nested-reductions-1-routine.c: Likewise.
	* c-c++-common/goacc/nested-reductions-2-kernels.c: Likewise.
	* c-c++-common/goacc/nested-reductions-2-parallel.c: Likewise.
	* c-c++-common/goacc/nested-reductions-2-routine.c: Likewise.
	* c-c++-common/goacc/uninit-dim-clause.c: Likewise.
	* c-c++-common/goacc/uninit-firstprivate-clause.c: Likewise.
	* c-c++-common/goacc/uninit-if-clause.c: Likewise.
	* gfortran.dg/goacc/array-with-dt-1.f90: Likewise.
	* gfortran.dg/goacc/array-with-dt-2.f90: Likewise.
	* gfortran.dg/goacc/array-with-dt-3.f90: Likewise.
	* gfortran.dg/goacc/array-with-dt-4.f90: Likewise.
	* gfortran.dg/goacc/array-with-dt-5.f90: Likewise.
	* gfortran.dg/goacc/derived-chartypes-1.f90: Likewise.
	* gfortran.dg/goacc/derived-chartypes-2.f90: Likewise.
	* gfortran.dg/goacc/derived-chartypes-3.f90: Likewise.
	* gfortran.dg/goacc/derived-chartypes-4.f90: Likewise.
	* gfortran.dg/goacc/derived-classtypes-1.f95: Likewise.
	* gfortran.dg/goacc/derived-types-2.f90: Likewise.
	* gfortran.dg/goacc/host_data-tree.f95: Likewise.
	* gfortran.dg/goacc/kernels-tree.f95: Likewise.
	* gfortran.dg/goacc/modules.f95: Likewise.
	* gfortran.dg/goacc/nested-reductions-1-kernels.f90: Likewise.
	* gfortran.dg/goacc/nested-reductions-1-parallel.f90: Likewise.
	* gfortran.dg/goacc/nested-reductions-1-routine.f90: Likewise.
	* gfortran.dg/goacc/nested-reductions-2-kernels.f90: Likewise.
	* gfortran.dg/goacc/nested-reductions-2-parallel.f90: Likewise.
	* gfortran.dg/goacc/nested-reductions-2-routine.f90: Likewise.
	* gfortran.dg/goacc/parallel-tree.f95: Likewise.
	* gfortran.dg/goacc/pr93464.f90: Likewise.
	* gfortran.dg/goacc/privatization-1-compute-loop.f90: Likewise.
	* gfortran.dg/goacc/privatization-1-compute.f90: Likewise.
	* gfortran.dg/goacc/privatization-1-routine_gang-loop.f90:
	Likewise.
	* gfortran.dg/goacc/privatization-1-routine_gang.f90: Likewise.
	* gfortran.dg/goacc/uninit-dim-clause.f95: Likewise.
	* gfortran.dg/goacc/uninit-firstprivate-clause.f95: Likewise.
	* gfortran.dg/goacc/uninit-if-clause.f95: Likewise.
	* gfortran.dg/goacc/uninit-use-device-clause.f95: Likewise.
	* gfortran.dg/goacc/wait.f90: Likewise.
	libgomp/
	* testsuite/libgomp.oacc-c-c++-common/vred2d-128.c: Document
	current '-Wuninitialized' diagnostics.
	* testsuite/libgomp.oacc-fortran/data-5.f90: Likewise.
	* testsuite/libgomp.oacc-fortran/gemm-2.f90: Likewise.
	* testsuite/libgomp.oacc-fortran/gemm.f90: Likewise.
	* testsuite/libgomp.oacc-fortran/optional-reduction.f90: Likewise.
	* testsuite/libgomp.oacc-fortran/parallel-reduction.f90: Likewise.
	* testsuite/libgomp.oacc-fortran/pr70643.f90: Likewise.
	* testsuite/libgomp.oacc-fortran/pr96628-part1.f90: Likewise.
	* testsuite/libgomp.oacc-fortran/privatized-ref-2.f90: Likewise.
	* testsuite/libgomp.oacc-fortran/reduction-5.f90: Likewise.
	* testsuite/libgomp.oacc-fortran/reduction-7.f90: Likewise.
	* testsuite/libgomp.oacc-fortran/reference-reductions.f90:
	Likewise.
This commit is contained in:
Thomas Schwinge 2021-08-26 16:55:21 +02:00
parent db0d23722e
commit 4bd8b1e881
54 changed files with 368 additions and 12 deletions

View File

@ -1,6 +1,8 @@
/* { dg-do compile } */
/* { dg-additional-options "-O2" } */
/* { dg-additional-options -Wuninitialized } */
#include "../../../../include/gomp-constants.h"
#pragma acc routine
@ -8,6 +10,7 @@ int
foo (void)
{
int res;
/* { dg-note {'res' was declared here} {} { target *-*-* } .-1 } */
__builtin_goacc_parlevel_id (GOMP_DIM_GANG);
__builtin_goacc_parlevel_id (GOMP_DIM_WORKER);
@ -18,6 +21,7 @@ foo (void)
__builtin_goacc_parlevel_size (GOMP_DIM_VECTOR);
res += __builtin_goacc_parlevel_id (GOMP_DIM_GANG);
/* { dg-warning {'res' is used uninitialized} {} { target *-*-* } .-1 } */
res += __builtin_goacc_parlevel_id (GOMP_DIM_WORKER);
res += __builtin_goacc_parlevel_id (GOMP_DIM_VECTOR);
@ -34,6 +38,8 @@ foo2 (void)
int res;
#pragma acc parallel
/* implicit 'firstprivate (res)'
{ dg-warning {'res' is used uninitialized} TODO { xfail *-*-* } .-2 } */
{
__builtin_goacc_parlevel_id (GOMP_DIM_GANG);
__builtin_goacc_parlevel_id (GOMP_DIM_WORKER);
@ -59,6 +65,8 @@ foo3 (void)
int res;
#pragma acc kernels
/* implicit 'copy (res)'
{ dg-warning {'res' is used uninitialized} TODO { xfail *-*-* } .-2 } */
{
__builtin_goacc_parlevel_id (GOMP_DIM_GANG);
__builtin_goacc_parlevel_id (GOMP_DIM_WORKER);

View File

@ -5,6 +5,8 @@
{ dg-do compile { target { lp64 || llp64 } } } */
/* { dg-additional-options "-fdump-tree-omplower" } */
/* { dg-additional-options -Wuninitialized } */
void
t1 ()
{
@ -13,10 +15,12 @@ t1 ()
} s;
int *a, *z;
/* { dg-note {'z' was declared here} {} { target *-*-* } .-1 } */
#pragma acc enter data copyin(s)
{
#pragma acc data copy(s.a[0:10]) copy(z[0:10])
/* { dg-warning {'z' is used uninitialized} {} { target *-*-* } .-1 } */
{
s.e = z;
#pragma acc parallel loop attach(s.e)

View File

@ -2,11 +2,16 @@
/* See also 'gfortran.dg/goacc/nested-reductions-1-kernels.f90'. */
/* { dg-additional-options -Wuninitialized } */
void acc_kernels (void)
{
int i, j, k, sum, diff;
#pragma acc kernels
/* implicit 'copy (sum, diff)'
{ dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
{ dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 } */
{
#pragma acc loop reduction(+:sum)
for (i = 0; i < 10; i++)
@ -74,6 +79,9 @@ void acc_kernels_loop (void)
int i, j, k, l, sum, diff;
#pragma acc kernels loop
/* implicit 'copy (sum, diff)'
{ dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
{ dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 } */
for (int h = 0; h < 10; ++h)
{
#pragma acc loop reduction(+:sum)
@ -151,6 +159,9 @@ void acc_kernels_loop_reduction (void)
int i, j, k, sum, diff;
#pragma acc kernels loop reduction(+:sum)
/* implicit 'copy (sum, diff)'
{ dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
{ dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 } */
for (int h = 0; h < 10; ++h)
{
for (i = 0; i < 10; i++)

View File

@ -2,11 +2,16 @@
/* See also 'gfortran.dg/goacc/nested-reductions-1-parallel.f90'. */
/* { dg-additional-options -Wuninitialized } */
void acc_parallel (void)
{
int i, j, k, sum, diff;
#pragma acc parallel
/* implicit 'copy (sum, diff)'
{ dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
{ dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 } */
{
#pragma acc loop reduction(+:sum)
for (i = 0; i < 10; i++)
@ -74,6 +79,9 @@ void acc_parallel_loop (void)
int i, j, k, l, sum, diff;
#pragma acc parallel loop
/* implicit 'copy (sum, diff)'
{ dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
{ dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 } */
for (int h = 0; h < 10; ++h)
{
#pragma acc loop reduction(+:sum)
@ -143,6 +151,9 @@ void acc_parallel_reduction (void)
int i, j, k, sum, diff;
#pragma acc parallel reduction(+:sum)
/* implicit 'copy (sum, diff)'
{ dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
{ dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 } */
{
for (i = 0; i < 10; i++)
for (j = 0; j < 10; j++)
@ -233,6 +244,9 @@ void acc_parallel_loop_reduction (void)
int i, j, k, sum, diff;
#pragma acc parallel loop reduction(+:sum)
/* implicit 'copy (sum, diff)'
{ dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
{ dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 } */
for (int h = 0; h < 10; ++h)
{
for (i = 0; i < 10; i++)

View File

@ -2,6 +2,8 @@
/* See also 'gfortran.dg/goacc/nested-reductions-1-routine.f90'. */
/* { dg-additional-options -Wuninitialized } */
#pragma acc routine gang
void acc_routine (void)
{
@ -10,6 +12,7 @@ void acc_routine (void)
{
/* { dg-error "gang reduction on an orphan loop" "" { target *-*-* } .+1 } */
#pragma acc loop reduction(+:sum)
/* { dg-warning {'sum' is used uninitialized} {} { target *-*-* } .-1 } */
for (i = 0; i < 10; i++)
for (j = 0; j < 10; j++)
for (k = 0; k < 10; k++)
@ -57,6 +60,7 @@ void acc_routine (void)
/* { dg-error "gang reduction on an orphan loop" "" { target *-*-* } .+1 } */
#pragma acc loop reduction(+:sum) reduction(-:diff)
/* { dg-warning {'diff' is used uninitialized} {} { target *-*-* } .-1 } */
for (i = 0; i < 10; i++)
{
#pragma acc loop reduction(+:sum)

View File

@ -2,11 +2,16 @@
/* See also 'gfortran.dg/goacc/nested-reductions-2-kernels.f90'. */
/* { dg-additional-options -Wuninitialized } */
void acc_kernels (void)
{
int i, j, k, l, sum, diff;
#pragma acc kernels
/* implicit 'copy (sum, diff)'
{ dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
{ dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 } */
{
#pragma acc loop reduction(+:sum)
for (i = 0; i < 10; i++)
@ -99,6 +104,9 @@ void acc_kernels_loop (void)
int i, j, k, l, sum, diff;
#pragma acc kernels loop
/* implicit 'copy (sum, diff)'
{ dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
{ dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 } */
for (int h = 0; h < 10; ++h)
{
#pragma acc loop reduction(+:sum)
@ -209,6 +217,9 @@ void acc_kernels_loop_reduction (void)
int i, j, k, l, sum, diff;
#pragma acc kernels loop reduction(+:sum)
/* implicit 'copy (sum, diff)'
{ dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
{ dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 } */
for (int h = 0; h < 10; ++h)
{
#pragma acc loop // { dg-warning "nested loop in reduction needs reduction clause for .sum." }

View File

@ -2,11 +2,16 @@
/* See also 'gfortran.dg/goacc/nested-reductions-2-parallel.f90'. */
/* { dg-additional-options -Wuninitialized } */
void acc_parallel (void)
{
int i, j, k, l, sum, diff;
#pragma acc parallel
/* implicit 'copy (sum, diff)'
{ dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
{ dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 } */
{
#pragma acc loop reduction(+:sum)
for (i = 0; i < 10; i++)
@ -99,6 +104,9 @@ void acc_parallel_loop (void)
int i, j, k, l, sum, diff;
#pragma acc parallel loop
/* implicit 'copy (sum, diff)'
{ dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
{ dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 } */
for (int h = 0; h < 10; ++h)
{
#pragma acc loop reduction(+:sum)
@ -201,6 +209,9 @@ void acc_parallel_reduction (void)
int i, j, k, l, sum, diff;
#pragma acc parallel reduction(+:sum)
/* implicit 'copy (sum, diff)'
{ dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
{ dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 } */
{
#pragma acc loop // { dg-warning "nested loop in reduction needs reduction clause for .sum." }
for (i = 0; i < 10; i++)
@ -293,6 +304,9 @@ void acc_parallel_loop_reduction (void)
int i, j, k, l, sum, diff;
#pragma acc parallel loop reduction(+:sum)
/* implicit 'copy (sum, diff)'
{ dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
{ dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 } */
for (int h = 0; h < 10; ++h)
{
#pragma acc loop // { dg-warning "nested loop in reduction needs reduction clause for .sum." }

View File

@ -2,6 +2,8 @@
/* See also 'gfortran.dg/goacc/nested-reductions-2-routine.f90'. */
/* { dg-additional-options -Wuninitialized } */
#pragma acc routine gang
void acc_routine (void)
{
@ -10,6 +12,7 @@ void acc_routine (void)
{
/* { dg-error "gang reduction on an orphan loop" "" { target *-*-* } .+1 } */
#pragma acc loop reduction(+:sum)
/* { dg-warning {'sum' is used uninitialized} {} { target *-*-* } .-1 } */
for (i = 0; i < 10; i++)
#pragma acc loop // { dg-warning "nested loop in reduction needs reduction clause for .sum." }
for (j = 0; j < 10; j++)
@ -83,6 +86,7 @@ void acc_routine (void)
/* { dg-error "gang reduction on an orphan loop" "" { target *-*-* } .+1 } */
#pragma acc loop reduction(+:sum) reduction(-:diff)
/* { dg-warning {'diff' is used uninitialized} {} { target *-*-* } .-1 } */
for (i = 0; i < 10; i++)
{
#pragma acc loop reduction(-:diff) // { dg-warning "nested loop in reduction needs reduction clause for .sum." }

View File

@ -6,6 +6,9 @@
void acc_parallel()
{
int i, j, k;
/* { dg-note {'i' was declared here} {} { target *-*-* } .-1 } */
/* { dg-note {'j' was declared here} {} { target *-*-* } .-2 } */
/* { dg-note {'k' was declared here} {} { target *-*-* } .-3 } */
#pragma acc parallel num_gangs(i) /* { dg-warning "is used uninitialized" } */
/* { dg-warning "region is gang partitioned but does not contain gang partitioned code" "" { target *-*-* } .-1 } */
@ -23,6 +26,9 @@ void acc_parallel()
void acc_kernels()
{
int i, j, k;
/* { dg-note {'i' was declared here} {} { target *-*-* } .-1 } */
/* { dg-note {'j' was declared here} {} { target *-*-* } .-2 } */
/* { dg-note {'k' was declared here} {} { target *-*-* } .-3 } */
#pragma acc kernels num_gangs(i) /* { dg-warning "is used uninitialized" } */
;

View File

@ -17,6 +17,7 @@ void
foo2 (void)
{
int i;
/* { dg-note {'i' was declared here} {} { target *-*-* } .-1 } */
#pragma acc parallel firstprivate (i) /* { dg-warning "is used uninitialized" } */
{

View File

@ -7,7 +7,15 @@ int
main (void)
{
int l, l2, l3, l4;
/* { dg-note {'l' was declared here} {} { target *-*-* } .-1 } */
/* { dg-note {'l2' was declared here} {} { target *-*-* } .-2 } */
/* { dg-note {'l3' was declared here} {} { target *-*-* } .-3 } */
/* { dg-note {'l4' was declared here} {} { target *-*-* } .-4 } */
bool b, b2, b3, b4;
/* { dg-note {'b' was declared here} {} { target *-*-* } .-1 } */
/* { dg-note {'b2' was declared here} {} { target *-*-* } .-2 } */
/* { dg-note {'b3' was declared here} {} { target *-*-* } .-3 } */
/* { dg-note {'b4' was declared here} {} { target *-*-* } .-4 } */
int i, i2;
#pragma acc parallel if(l) /* { dg-warning "is used uninitialized" } */

View File

@ -1,10 +1,15 @@
! { dg-additional-options -Wuninitialized }
type t
integer, allocatable :: A(:,:)
end type t
type(t), allocatable :: b(:)
! { dg-note {'b' declared here} {} { target *-*-* } .-1 }
!$acc update host(b)
! { dg-warning {'b\.dim\[0\]\.ubound' is used uninitialized} {} { target *-*-* } .-1 }
! { dg-warning {'b\.dim\[0\]\.lbound' is used uninitialized} {} { target *-*-* } .-2 }
!$acc update host(b(:))
!$acc update host(b(1)%A)
!$acc update host(b(1)%A(:,:))

View File

@ -1,10 +1,15 @@
! { dg-additional-options -Wuninitialized }
type t
integer, allocatable :: A(:,:)
end type t
type(t), allocatable :: b(:)
! { dg-note {'b' declared here} {} { target *-*-* } .-1 }
!$acc update host(b(::2))
! { dg-warning {'b\.dim\[0\]\.ubound' is used uninitialized} {} { target *-*-* } .-1 }
! { dg-warning {'b\.dim\[0\]\.lbound' is used uninitialized} {} { target *-*-* } .-2 }
!$acc update host(b(1)%A(::3,::4))
end

View File

@ -1,3 +1,5 @@
! { dg-additional-options -Wuninitialized }
type t2
integer :: A(200,200)
end type t2
@ -6,9 +8,15 @@ type t
end type t
type(t2),allocatable :: c(:)
! { dg-note {'c' declared here} {} { target *-*-* } .-1 }
! { dg-note {'c\.offset' was declared here} {} { target *-*-* } .-2 }
type(t), allocatable :: d(:)
! { dg-note {'d' declared here} {} { target *-*-* } .-1 }
! { dg-note {'d\.offset' was declared here} {} { target *-*-* } .-2 }
!$acc exit data delete(c(1)%A)
! { dg-warning {'c\.offset' is used uninitialized} {} { target *-*-* } .-1 }
!$acc exit data delete(d(1)%A)
! { dg-warning {'d\.offset' is used uninitialized} {} { target *-*-* } .-1 }
end

View File

@ -1,3 +1,5 @@
! { dg-additional-options -Wuninitialized }
type t4
integer, allocatable :: quux(:)
end type t4
@ -12,7 +14,10 @@ type t
end type t
type(t), allocatable :: c(:)
! { dg-note {'c' declared here} {} { target *-*-* } .-1 }
!$acc enter data copyin(c(5)%foo(4)%bar(3)%qux(2)%quux(:))
! { dg-warning {'c\.offset' is used uninitialized} {} { target *-*-* } .-1 }
!$acc exit data delete(c(5)%foo(4)%bar(3)%qux(2)%quux(:))
! { dg-warning {'c\.offset' is used uninitialized} {} { target *-*-* } .-1 }
end

View File

@ -1,3 +1,5 @@
! { dg-additional-options -Wuninitialized }
type t2
integer :: bar
end type t2
@ -6,7 +8,9 @@ type t
end type t
type(t) :: c
! { dg-note {'c' declared here} {} { target *-*-* } .-1 }
!$acc enter data copyin(c%foo)
! { dg-warning {'c\.foo' is used uninitialized} {} { target *-*-* } .-1 }
end

View File

@ -1,3 +1,5 @@
! { dg-additional-options -Wuninitialized }
type :: type1
character(len=35) :: a
end type type1

View File

@ -1,3 +1,5 @@
! { dg-additional-options -Wuninitialized }
type :: type1
character(len=35,kind=4) :: a
end type type1

View File

@ -1,5 +1,7 @@
! { dg-additional-options "-fdump-tree-gimple" }
! { dg-additional-options -Wuninitialized }
type :: type1
character(len=35) :: a
end type type1
@ -12,10 +14,16 @@ type(type1) :: foo
type(type2) :: bar
type(type1), pointer :: pfoo
! { dg-note {'pfoo' was declared here} {} { target *-*-* } .-1 }
type(type2), pointer :: pbar
! { dg-note {'pbar' was declared here} {} { target *-*-* } .-1 }
class(type1), pointer :: cfoo
! { dg-note {'cfoo' declared here} {} { target *-*-* } .-1 }
! { dg-note {'cfoo\._data' was declared here} {} { target *-*-* } .-2 }
class(type2), pointer :: cbar
! { dg-note {'cbar' declared here} {} { target *-*-* } .-1 }
! { dg-note {'cbar\._data' was declared here} {} { target *-*-* } .-2 }
class(type1), allocatable :: acfoo
class(type2), allocatable :: acbar
@ -24,10 +32,14 @@ class(type2), allocatable :: acbar
!$acc enter data copyin(bar%b)
!$acc enter data copyin(pfoo%a)
! { dg-warning {'pfoo' is used uninitialized} {} { target *-*-* } .-1 }
!$acc enter data copyin(pbar%b)
! { dg-warning {'pbar' is used uninitialized} {} { target *-*-* } .-1 }
!$acc enter data copyin(cfoo%a)
! { dg-warning {'cfoo\._data' is used uninitialized} {} { target *-*-* } .-1 }
!$acc enter data copyin(cbar%b)
! { dg-warning {'cbar\._data' is used uninitialized} {} { target *-*-* } .-1 }
!$acc enter data copyin(acfoo%a)
!$acc enter data copyin(acbar%b)

View File

@ -1,5 +1,7 @@
! { dg-additional-options "-fdump-tree-gimple" }
! { dg-additional-options -Wuninitialized }
type :: type1
character(len=35,kind=4) :: a
end type type1
@ -12,10 +14,16 @@ type(type1) :: foo
type(type2) :: bar
type(type1), pointer :: pfoo
! { dg-note {'pfoo' was declared here} {} { target *-*-* } .-1 }
type(type2), pointer :: pbar
! { dg-note {'pbar' was declared here} {} { target *-*-* } .-1 }
class(type1), pointer :: cfoo
! { dg-note {'cfoo' declared here} {} { target *-*-* } .-1 }
! { dg-note {'cfoo\._data' was declared here} {} { target *-*-* } .-2 }
class(type2), pointer :: cbar
! { dg-note {'cbar' declared here} {} { target *-*-* } .-1 }
! { dg-note {'cbar\._data' was declared here} {} { target *-*-* } .-2 }
class(type1), allocatable :: acfoo
class(type2), allocatable :: acbar
@ -24,10 +32,14 @@ class(type2), allocatable :: acbar
!$acc enter data copyin(bar%b)
!$acc enter data copyin(pfoo%a)
! { dg-warning {'pfoo' is used uninitialized} {} { target *-*-* } .-1 }
!$acc enter data copyin(pbar%b)
! { dg-warning {'pbar' is used uninitialized} {} { target *-*-* } .-1 }
!$acc enter data copyin(cfoo%a)
! { dg-warning {'cfoo\._data' is used uninitialized} {} { target *-*-* } .-1 }
!$acc enter data copyin(cbar%b)
! { dg-warning {'cbar\._data' is used uninitialized} {} { target *-*-* } .-1 }
!$acc enter data copyin(acfoo%a)
!$acc enter data copyin(acbar%b)

View File

@ -1,3 +1,5 @@
! { dg-additional-options -Wuninitialized }
type :: type1
integer :: a
end type type1

View File

@ -1,3 +1,5 @@
! { dg-additional-options -Wuninitialized }
module bar
type :: type1
real(8), pointer, public :: p(:) => null()

View File

@ -1,10 +1,14 @@
! { dg-additional-options "-fdump-tree-original -fdump-tree-gimple" }
! { dg-additional-options -Wuninitialized }
program test
implicit none
integer, pointer :: p
! { dg-note {'p' was declared here} {} { target *-*-* } .-1 }
!$acc host_data use_device(p)
! { dg-warning {'p' is used uninitialized} {} { target *-*-* } .-1 }
! { dg-final { scan-tree-dump-times "(?n)#pragma acc host_data use_device_ptr\\(p\\)$" 1 "original" } }
! { dg-final { scan-tree-dump-times "(?n)#pragma omp target oacc_host_data use_device_ptr\\(p\\)$" 1 "gimple" } }
!$acc end host_data

View File

@ -3,9 +3,12 @@
! { dg-additional-options "--param=openacc-kernels=decompose" }
! { dg-additional-options "-fdump-tree-omp_oacc_kernels_decompose" }
! { dg-additional-options -Wuninitialized }
program test
implicit none
integer :: q, i, j, k, m, n, o, p, r, s, t, u, v, w
! { dg-note {'i' was declared here} {} { target *-*-* } .-1 }
logical :: l = .true.
!$acc kernels if(l) async num_gangs(i) num_workers(i) vector_length(i) &
@ -13,6 +16,7 @@ program test
!$acc no_create(n) &
!$acc present(o), pcopy(p), pcopyin(r), pcopyout(s), pcreate(t) &
!$acc deviceptr(u)
! { dg-warning {'i' is used uninitialized} {} { target *-*-* } .-1 }
!$acc end kernels
end program test

View File

@ -1,4 +1,4 @@
! { dg-do compile }
! { dg-additional-options -Wuninitialized }
MODULE reduction_test
@ -18,6 +18,8 @@ SUBROUTINE reduction_kernel(x_min,x_max,y_min,y_max,arr,sum)
!$ACC DATA PRESENT(arr) COPY(sum)
!$ACC PARALLEL LOOP REDUCTION(+ : sum)
! { dg-bogus {'sum\.[0-9]+' is used uninitialized} TODO { xfail *-*-* } .-1 }
! { dg-note {'sum\.[0-9]+' was declared here} {} { target *-*-* } .-2 }
DO k=y_min,y_max
DO j=x_min,x_max
sum=sum*arr(j,k)

View File

@ -2,11 +2,16 @@
! See also 'c-c++-common/goacc/nested-reductions-1-kernels.c'.
! { dg-additional-options -Wuninitialized }
subroutine acc_kernels ()
implicit none (type, external)
integer :: i, j, k, sum, diff
!$acc kernels
! implicit 'copy (sum, diff)'
! { dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
! { dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 }
!$acc loop reduction(+:sum)
do i = 1, 10
do j = 1, 10
@ -94,6 +99,9 @@ subroutine acc_kernels_loop ()
integer :: h, i, j, k, l, sum, diff
!$acc kernels loop
! implicit 'copy (sum, diff)'
! { dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
! { dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 }
do h = 1, 10
!$acc loop reduction(+:sum)
do i = 1, 10
@ -192,6 +200,9 @@ subroutine acc_kernels_loop_reduction ()
integer :: h, i, j, k, sum, diff
!$acc kernels loop reduction(+:sum)
! implicit 'copy (sum, diff)'
! { dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
! { dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 }
do h = 1, 10
do i = 1, 10
do j = 1, 10

View File

@ -2,11 +2,16 @@
! See also 'c-c++-common/goacc/nested-reductions-1-parallel.c'.
! { dg-additional-options -Wuninitialized }
subroutine acc_parallel ()
implicit none (type, external)
integer :: i, j, k, sum, diff
!$acc parallel
! implicit 'copy (sum, diff)'
! { dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
! { dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 }
!$acc loop reduction(+:sum)
do i = 1, 10
do j = 1, 10
@ -94,6 +99,9 @@ subroutine acc_parallel_loop ()
integer :: h, i, j, k, l, sum, diff
!$acc parallel loop
! implicit 'copy (sum, diff)'
! { dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
! { dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 }
do h = 1, 10
!$acc loop reduction(+:sum)
do i = 1, 10
@ -183,6 +191,9 @@ subroutine acc_parallel_reduction ()
integer :: i, j, k, sum, diff
!$acc parallel reduction(+:sum)
! implicit 'copy (sum, diff)'
! { dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
! { dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 }
do i = 1, 10
do j = 1, 10
do k = 1, 10
@ -296,6 +307,9 @@ subroutine acc_parallel_loop_reduction ()
integer :: h, i, j, k, sum, diff
!$acc parallel loop reduction(+:sum)
! implicit 'copy (sum, diff)'
! { dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
! { dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 }
do h = 1, 10
do i = 1, 10
do j = 1, 10

View File

@ -2,6 +2,8 @@
! See also 'c-c++-common/goacc/nested-reductions-1-routine.c'.
! { dg-additional-options -Wuninitialized }
subroutine acc_routine ()
implicit none (type, external)
!$acc routine gang
@ -10,6 +12,7 @@ subroutine acc_routine ()
! { dg-error "gang reduction on an orphan loop" "" { target *-*-* } .+1 }
!$acc loop reduction(+:sum)
! { dg-warning {'sum' is used uninitialized} {} { target *-*-* } .-1 }
do i = 1, 10
do j = 1, 10
do k = 1, 10
@ -75,6 +78,7 @@ subroutine acc_routine ()
! { dg-error "gang reduction on an orphan loop" "" { target *-*-* } .+1 }
!$acc loop reduction(+:sum) reduction(-:diff)
! { dg-warning {'diff' is used uninitialized} {} { target *-*-* } .-1 }
do i = 1, 10
!$acc loop reduction(+:sum)
do j = 1, 10

View File

@ -2,11 +2,16 @@
! See also 'c-c++-common/goacc/nested-reductions-2-kernels.c'.
! { dg-additional-options -Wuninitialized }
subroutine acc_kernels ()
implicit none (type, external)
integer :: i, j, k, l, sum, diff
!$acc kernels
! implicit 'copy (sum, diff)'
! { dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
! { dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 }
!$acc loop reduction(+:sum)
do i = 1, 10
!$acc loop ! { dg-warning "nested loop in reduction needs reduction clause for .sum." }
@ -126,6 +131,9 @@ subroutine acc_kernels_loop ()
integer :: h, i, j, k, l, sum, diff
!$acc kernels loop
! implicit 'copy (sum, diff)'
! { dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
! { dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 }
do h = 1, 10
!$acc loop reduction(+:sum)
do i = 1, 10
@ -266,6 +274,9 @@ subroutine acc_kernels_loop_reduction ()
integer :: h, i, j, k, l, sum, diff
!$acc kernels loop reduction(+:sum)
! implicit 'copy (sum, diff)'
! { dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
! { dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 }
do h = 1, 10
!$acc loop ! { dg-warning "nested loop in reduction needs reduction clause for .sum." }
do i = 1, 10

View File

@ -2,11 +2,16 @@
! See also 'c-c++-common/goacc/nested-reductions-2-parallel.c'.
! { dg-additional-options -Wuninitialized }
subroutine acc_parallel ()
implicit none (type, external)
integer :: i, j, k, l, sum, diff
!$acc parallel
! implicit 'copy (sum, diff)'
! { dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
! { dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 }
!$acc loop reduction(+:sum)
do i = 1, 10
!$acc loop ! { dg-warning "nested loop in reduction needs reduction clause for .sum." }
@ -126,6 +131,9 @@ subroutine acc_parallel_loop ()
integer :: h, i, j, k, l, sum, diff
!$acc parallel loop
! implicit 'copy (sum, diff)'
! { dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
! { dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 }
do h = 1, 10
!$acc loop reduction(+:sum)
do i = 1, 10
@ -257,6 +265,9 @@ subroutine acc_parallel_reduction ()
integer :: i, j, k, l, sum, diff
!$acc parallel reduction(+:sum)
! implicit 'copy (sum, diff)'
! { dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
! { dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 }
!$acc loop ! { dg-warning "nested loop in reduction needs reduction clause for .sum." }
do i = 1, 10
!$acc loop ! { dg-warning "nested loop in reduction needs reduction clause for .sum." }
@ -376,6 +387,9 @@ subroutine acc_parallel_loop_reduction ()
integer :: h, i, j, k, l, sum, diff
!$acc parallel loop reduction(+:sum)
! implicit 'copy (sum, diff)'
! { dg-warning {'sum' is used uninitialized} TODO { xfail *-*-* } .-2 }
! { dg-warning {'diff' is used uninitialized} TODO { xfail *-*-* } .-3 }
do h = 1, 10
!$acc loop ! { dg-warning "nested loop in reduction needs reduction clause for .sum." }
do i = 1, 10

View File

@ -2,6 +2,8 @@
! See also 'c-c++-common/goacc/nested-reductions-2-routine.c'.
! { dg-additional-options -Wuninitialized }
subroutine acc_routine ()
implicit none (type, external)
!$acc routine gang
@ -9,6 +11,7 @@ subroutine acc_routine ()
! { dg-error "gang reduction on an orphan loop" "" { target *-*-* } .+1 }
!$acc loop reduction(+:sum)
! { dg-warning {'sum' is used uninitialized} {} { target *-*-* } .-1 }
do i = 1, 10
!$acc loop ! { dg-warning "nested loop in reduction needs reduction clause for .sum." }
do j = 1, 10
@ -107,6 +110,7 @@ subroutine acc_routine ()
! { dg-error "gang reduction on an orphan loop" "" { target *-*-* } .+1 }
!$acc loop reduction(+:sum) reduction(-:diff)
! { dg-warning {'diff' is used uninitialized} {} { target *-*-* } .-1 }
do i = 1, 10
!$acc loop reduction(-:diff) ! { dg-warning "nested loop in reduction needs reduction clause for .sum." }
do j = 1, 10

View File

@ -2,12 +2,15 @@
! test for tree-dump-original and spaces-commas
! { dg-additional-options -Wuninitialized }
! { dg-additional-options "-Wopenacc-parallelism" } for testing/documenting
! aspects of that functionality.
program test
implicit none
integer :: q, i, j, k, m, n, o, p, r, s, t, u, v, w
! { dg-note {'i' was declared here} {} { target *-*-* } .-1 }
logical :: l = .true.
!$acc parallel if(l) async num_gangs(i) num_workers(i) vector_length(i) &
@ -15,9 +18,10 @@ program test
!$acc no_create(n) &
!$acc present(o), pcopy(p), pcopyin(r), pcopyout(s), pcreate(t) &
!$acc deviceptr(u), private(v), firstprivate(w)
! { dg-warning "region is gang partitioned but does not contain gang partitioned code" "" { target *-*-* } .-1 }
! { dg-warning "region is worker partitioned but does not contain worker partitioned code" "" { target *-*-* } .-2 }
! { dg-warning "region is vector partitioned but does not contain vector partitioned code" "" { target *-*-* } .-3 }
! { dg-warning {'i' is used uninitialized} {} { target *-*-* } .-1 }
! { dg-warning "region is gang partitioned but does not contain gang partitioned code" "" { target *-*-* } .-2 }
! { dg-warning "region is worker partitioned but does not contain worker partitioned code" "" { target *-*-* } .-3 }
! { dg-warning "region is vector partitioned but does not contain vector partitioned code" "" { target *-*-* } .-4 }
!$acc end parallel
end program test

View File

@ -1,13 +1,16 @@
! { dg-do compile }
!
! PR fortran/93464
!
! Contributed by G. Steinmetz
!
! { dg-additional-options -Wuninitialized }
program p
character :: c(2) = 'a'
character, allocatable :: z(:)
! { dg-note {'z' declared here} {} { target *-*-* } .-1 }
!$acc parallel
! { dg-warning {'z\.dim\[0\]\.ubound' is used uninitialized} {} { target *-*-* } .-1 }
! { dg-warning {'z\.dim\[0\]\.lbound' is used uninitialized} {} { target *-*-* } .-2 }
!$omp target
z = c
!$acc end parallel

View File

@ -4,6 +4,8 @@
! { dg-additional-options "--param=openacc-privatization=noisy" } for
! testing/documenting aspects of that functionality.
! { dg-additional-options -Wuninitialized }
! See also '../../c-c++-common/goacc/privatization-1-compute-loop.c'.
!TODO More cases should be added here.
@ -38,6 +40,7 @@ contains
! (See C/C++ example.)
a = g (i, j, a, c)
! { dg-warning {'a' is used uninitialized} TODO { xfail *-*-* } .-1 }
x = a
!$acc atomic write
y = a

View File

@ -4,6 +4,8 @@
! { dg-additional-options "--param=openacc-privatization=noisy" } for
! testing/documenting aspects of that functionality.
! { dg-additional-options -Wuninitialized }
! See also '../../c-c++-common/goacc/privatization-1-compute.c'.
!TODO More cases should be added here.
@ -11,13 +13,13 @@
! passed to 'incr' may be unset, and in that case, it will be set to [...]",
! so to maintain compatibility with earlier Tcl releases, we manually
! initialize counter variables:
! { dg-line l_dummy[variable c_compute 0] }
! { dg-line l_dummy[variable c_compute 0 c_function 0] }
! { dg-message "dummy" "" { target iN-VAl-Id } l_dummy } to avoid
! "WARNING: dg-line var l_dummy defined, but not used".
module m
contains
subroutine f (i, j, a)
subroutine f (i, j, a) ! { dg-line l_function[incr c_function] }
implicit none
integer :: i, j, a
integer :: x, y
@ -35,6 +37,12 @@ contains
! (See C/C++ example.)
a = g (i, j, a, c)
! { dg-warning {'i' is used uninitialized} {} { target *-*-* } .-1 }
! { dg-note {'i' was declared here} {} { target *-*-* } l_function$c_function }
! { dg-warning {'j' is used uninitialized} {} { target *-*-* } .-3 }
! { dg-note {'j' was declared here} {} { target *-*-* } l_function$c_function }
! { dg-warning {'a' is used uninitialized} {} { target *-*-* } .-5 }
! { dg-note {'a' was declared here} {} { target *-*-* } l_function$c_function }
x = a
!$acc atomic write ! ... to force 'TREE_ADDRESSABLE'.
y = a

View File

@ -4,6 +4,8 @@
! { dg-additional-options "--param=openacc-privatization=noisy" } for
! testing/documenting aspects of that functionality.
! { dg-additional-options -Wuninitialized }
! See also '../../c-c++-common/goacc/privatization-1-routine_gang-loop.c'.
!TODO More cases should be added here.
@ -38,6 +40,7 @@ contains
! (See C/C++ example.)
a = g (i, j, a, c)
! { dg-warning {'a' is used uninitialized} TODO { xfail *-*-* } .-1 }
x = a
!$acc atomic write
y = a

View File

@ -4,6 +4,8 @@
! { dg-additional-options "--param=openacc-privatization=noisy" } for
! testing/documenting aspects of that functionality.
! { dg-additional-options -Wuninitialized }
! See also '../../c-c++-common/goacc/privatization-1-routine_gang.c'.
!TODO More cases should be added here.

View File

@ -6,6 +6,9 @@
subroutine acc_parallel
implicit none
integer :: i, j, k
! { dg-note {'i' was declared here} {} { target *-*-* } .-1 }
! { dg-note {'j' was declared here} {} { target *-*-* } .-2 }
! { dg-note {'k' was declared here} {} { target *-*-* } .-3 }
!$acc parallel num_gangs(i) ! { dg-warning "is used uninitialized" }
! { dg-warning "region is gang partitioned but does not contain gang partitioned code" "" { target *-*-* } .-1 }
@ -23,6 +26,9 @@ end subroutine acc_parallel
subroutine acc_kernels
implicit none
integer :: i, j, k
! { dg-note {'i' was declared here} {} { target *-*-* } .-1 }
! { dg-note {'j' was declared here} {} { target *-*-* } .-2 }
! { dg-note {'k' was declared here} {} { target *-*-* } .-3 }
!$acc kernels num_gangs(i) ! { dg-warning "is used uninitialized" }
!$acc end kernels

View File

@ -11,6 +11,7 @@ end subroutine test
subroutine test2
INTEGER :: i
! { dg-note {'i' was declared here} {} { target *-*-* } .-1 }
!$acc parallel firstprivate (i) ! { dg-warning "is used uninitialized" }
i = 1

View File

@ -4,6 +4,10 @@
program test
implicit none
logical :: b, b2, b3, b4
! { dg-note {'b' was declared here} {} { target *-*-* } .-1 }
! { dg-note {'b2' was declared here} {} { target *-*-* } .-2 }
! { dg-note {'b3' was declared here} {} { target *-*-* } .-3 }
! { dg-note {'b4' was declared here} {} { target *-*-* } .-4 }
integer :: data, data2
!$acc parallel if(b) ! { dg-warning "is used uninitialized" }

View File

@ -3,6 +3,7 @@
subroutine test
integer, pointer :: p
! { dg-note {'p' was declared here} {} { target *-*-* } .-1 }
!$acc host_data use_device(p) ! { dg-warning "is used uninitialized" }
!$acc end host_data

View File

@ -1,12 +1,16 @@
! Ensure that ACC WAIT accept integer arguments.
! { dg-additional-options -Wuninitialized }
subroutine foo (wqueue)
implicit none
integer :: wqueue, waitno
! { dg-note {'waitno' was declared here} {} { target *-*-* } .-1 }
integer, parameter :: waitp = 100
!$acc wait (wqueue)
!$acc wait (waitno)
! { dg-warning {'waitno' is used uninitialized} {} { target *-*-* } .-1 }
!$acc wait (waitp)
!$acc wait (0)
end subroutine foo

View File

@ -1,5 +1,7 @@
/* Test large vector lengths. */
/* { dg-additional-options -Wuninitialized } */
#include <assert.h>
#define n 10000
@ -8,7 +10,7 @@ int a1[n], a2[n];
#define gentest(name, outer, inner) \
void name () \
{ \
long i, j, t1, t2, t3; \
long i, j, t1, t2, t3; /* { dg-line vars } */ \
_Pragma(outer) \
for (i = 0; i < n; i++) \
{ \
@ -32,15 +34,47 @@ int a1[n], a2[n];
gentest (test1, "acc parallel loop gang vector_length (128) firstprivate (t1, t2)",
"acc loop vector reduction(+:t1) reduction(-:t2)")
/* { dg-warning {'t1' is used uninitialized} {} { target *-*-* } .-1 }
{ dg-note {'t1' was declared here} {} { target *-*-* } vars }
{ dg-note {in expansion of macro 'gentest'} {} { target { ! offloading_enabled } } .-4 }
TODO See PR101551 for 'offloading_enabled' differences. */
/* { dg-warning {'t2' is used uninitialized} {} { target *-*-* } .-5 }
{ dg-note {'t2' was declared here} {} { target *-*-* } vars }
{ DUP_dg-note {in expansion of macro 'gentest'} {} { target { ! offloading_enabled } } .-8 }
TODO See PR101551 for 'offloading_enabled' differences. */
gentest (test2, "acc parallel loop gang vector_length (128) firstprivate (t1, t2)",
"acc loop worker vector reduction(+:t1) reduction(-:t2)")
/* { dg-warning {'t1' is used uninitialized} {} { target *-*-* } .-1 }
{ DUP_dg-note {'t1' was declared here} {} { target *-*-* } vars }
{ dg-note {in expansion of macro 'gentest'} {} { target { ! offloading_enabled } } .-4 }
TODO See PR101551 for 'offloading_enabled' differences. */
/* { dg-warning {'t2' is used uninitialized} {} { target *-*-* } .-5 }
{ DUP_dg-note {'t2' was declared here} {} { target *-*-* } vars }
{ DUP_dg-note {in expansion of macro 'gentest'} {} { target { ! offloading_enabled } } .-8 }
TODO See PR101551 for 'offloading_enabled' differences. */
gentest (test3, "acc parallel loop gang worker vector_length (128) firstprivate (t1, t2)",
"acc loop vector reduction(+:t1) reduction(-:t2)")
/* { dg-warning {'t1' is used uninitialized} {} { target *-*-* } .-1 }
{ DUP_dg-note {'t1' was declared here} {} { target *-*-* } vars }
{ dg-note {in expansion of macro 'gentest'} {} { target { ! offloading_enabled } } .-4 }
TODO See PR101551 for 'offloading_enabled' differences. */
/* { dg-warning {'t2' is used uninitialized} {} { target *-*-* } .-5 }
{ DUP_dg-note {'t2' was declared here} {} { target *-*-* } vars }
{ DUP_dg-note {in expansion of macro 'gentest'} {} { target { ! offloading_enabled } } .-8 }
TODO See PR101551 for 'offloading_enabled' differences. */
gentest (test4, "acc parallel loop firstprivate (t1, t2)",
"acc loop reduction(+:t1) reduction(-:t2)")
/* { dg-warning {'t1' is used uninitialized} {} { target *-*-* } .-1 }
{ DUP_dg-note {'t1' was declared here} {} { target *-*-* } vars }
{ dg-note {in expansion of macro 'gentest'} {} { target { ! offloading_enabled } } .-4 }
TODO See PR101551 for 'offloading_enabled' differences. */
/* { dg-warning {'t2' is used uninitialized} {} { target *-*-* } .-5 }
{ DUP_dg-note {'t2' was declared here} {} { target *-*-* } vars }
{ DUP_dg-note {in expansion of macro 'gentest'} {} { target { ! offloading_enabled } } .-8 }
TODO See PR101551 for 'offloading_enabled' differences. */
int

View File

@ -1,6 +1,8 @@
! { dg-do run }
! { dg-skip-if "" { *-*-* } { "*" } { "-DACC_MEM_SHARED=0" } }
! { dg-additional-options -Wuninitialized }
program refcount_test
use openacc
integer, allocatable :: h(:)
@ -21,6 +23,8 @@ program refcount_test
call acc_update_self (h)
do i = 1, N
if (h(i) .eq. i) c = c + 1
! { dg-warning {'c' may be used uninitialized} {} { target __OPTIMIZE__ } .-1 }
! { dg-note {'c' was declared here} {} { target __OPTIMIZE__ } .-2 }
end do
! h[] should be filled with uninitialized device values,
! 'stop' if it's not.

View File

@ -3,6 +3,8 @@
! { dg-do run }
! { dg-additional-options "-fopenacc-dim=::128" }
! { dg-additional-options -Wuninitialized }
! Implicitly set vector_length to 128 using -fopenacc-dim.
subroutine openacc_sgemm (m, n, k, alpha, a, b, beta, c)
integer :: m, n, k
@ -11,8 +13,10 @@ subroutine openacc_sgemm (m, n, k, alpha, a, b, beta, c)
integer :: i, j, l
real :: temp
! { dg-note {'temp' was declared here} {} { target *-*-* } .-1 }
!$acc parallel loop copy(c(1:m,1:n)) copyin(a(1:k,1:m),b(1:k,1:n)) firstprivate (temp)
! { dg-warning {'temp' is used uninitialized} {} { target *-*-* } .-1 }
do j = 1, n
!$acc loop
do i = 1, m

View File

@ -2,6 +2,8 @@
! { dg-do run }
! { dg-additional-options -Wuninitialized }
! Explicitly set vector_length to 128 using a vector_length clause.
subroutine openacc_sgemm_128 (m, n, k, alpha, a, b, beta, c)
integer :: m, n, k
@ -10,8 +12,10 @@ subroutine openacc_sgemm_128 (m, n, k, alpha, a, b, beta, c)
integer :: i, j, l
real :: temp
! { dg-note {'temp' was declared here} {} { target *-*-* } .-1 }
!$acc parallel loop copy(c(1:m,1:n)) copyin(a(1:k,1:m),b(1:k,1:n)) vector_length (128) firstprivate (temp)
! { dg-warning {'temp' is used uninitialized} {} { target *-*-* } .-1 }
do j = 1, n
!$acc loop
do i = 1, m

View File

@ -4,6 +4,8 @@
! { dg-do run }
! { dg-additional-options -Wuninitialized }
!TODO
! { dg-xfail-run-if TODO { openacc_radeon_accel_selected && { ! __OPTIMIZE__ } } }
@ -32,6 +34,8 @@ contains
!$acc parallel num_gangs(ng) copy(rg)
!$acc loop reduction(+:rg) gang
! { dg-bogus {'rg\.[0-9]+' is used uninitialized} TODO { xfail *-*-* } .-1 }
! { dg-note {'rg\.[0-9]+' was declared here} {} { target *-*-* } .-2 }
do i = 1, n
rg = rg + array(i)
end do
@ -39,6 +43,8 @@ contains
!$acc parallel num_workers(nw) copy(rw)
!$acc loop reduction(+:rw) worker
! { dg-bogus {'rw\.[0-9]+' is used uninitialized} TODO { xfail *-*-* } .-1 }
! { dg-note {'rw\.[0-9]+' was declared here} {} { target *-*-* } .-2 }
do i = 1, n
rw = rw + array(i)
end do
@ -46,6 +52,8 @@ contains
!$acc parallel vector_length(vl) copy(rv)
!$acc loop reduction(+:rv) vector
! { dg-bogus {'rv\.[0-9]+' is used uninitialized} TODO { xfail *-*-* } .-1 }
! { dg-note {'rv\.[0-9]+' was declared here} {} { target *-*-* } .-2 }
do i = 1, n
rv = rv + array(i)
end do
@ -53,6 +61,8 @@ contains
!$acc parallel num_gangs(ng) num_workers(nw) vector_length(vl) copy(rc)
!$acc loop reduction(+:rc) gang worker vector
! { dg-bogus {'rc\.[0-9]+' is used uninitialized} TODO { xfail *-*-* } .-1 }
! { dg-note {'rc\.[0-9]+' was declared here} {} { target *-*-* } .-2 }
do i = 1, n
rc = rc + array(i)
end do

View File

@ -1,5 +1,7 @@
! { dg-do run }
! { dg-additional-options -Wuninitialized }
! { dg-additional-options "-Wopenacc-parallelism" } for testing/documenting
! aspects of that functionality.
@ -44,7 +46,11 @@ subroutine redsub(s1, s2, n)
integer :: s1, s2, n
!$acc parallel reduction(+:s1,s2) num_gangs (10) copy(s1)
! { dg-bogus "\[Ww\]arning: region is gang partitioned but does not contain gang partitioned code" "TODO 'reduction'" { xfail *-*-* } .-1 }
! { dg-bogus {'s1\.[0-9]+' is used uninitialized} TODO { xfail *-*-* } .-1 }
! { dg-note {'s1\.[0-9]+' was declared here} {} { target *-*-* } .-2 }
! { dg-bogus {'s2\.[0-9]+' is used uninitialized} TODO { xfail *-*-* } .-3 }
! { dg-note {'s2\.[0-9]+' was declared here} {} { target *-*-* } .-4 }
! { dg-bogus "\[Ww\]arning: region is gang partitioned but does not contain gang partitioned code" "TODO 'reduction'" { xfail *-*-* } .-5 }
s1 = s1 + 1
s2 = s2 + 1
!$acc end parallel

View File

@ -1,5 +1,7 @@
! { dg-do run }
!
! { dg-additional-options -Wuninitialized }
MODULE reduction_test
CONTAINS
@ -16,6 +18,8 @@ SUBROUTINE reduction_kernel(x_min,x_max,y_min,y_max,arr,sum)
!$ACC DATA PRESENT(arr) COPY(sum)
!$ACC PARALLEL LOOP REDUCTION(+ : sum)
! { dg-bogus {'sum\.[0-9]+' is used uninitialized} TODO { xfail *-*-* } .-1 }
! { dg-note {'sum\.[0-9]+' was declared here} {} { target *-*-* } .-2 }
DO k=y_min,y_max
DO j=x_min,x_max
sum=sum+arr(j,k)

View File

@ -3,6 +3,9 @@
! { dg-additional-options "-ftree-slp-vectorize" }
!
! This file is compiled first
! { dg-additional-options -Wuninitialized }
module m2
real*8 :: mysum
!$acc declare device_resident(mysum)
@ -16,5 +19,7 @@ contains
!$acc routine seq
REAL*8, INTENT(INOUT) :: t(:)
t = (100.0_8*t)/sum
! { dg-warning {'sum' is used uninitialized} {} { target *-*-* } .-1 }
! { dg-note {'sum' was declared here} {} { target *-*-* } .-2 }
END SUBROUTINE two
end module m2

View File

@ -15,6 +15,8 @@
! Prune a few: uninteresting, and varying depending on GCC configuration (data types):
! { dg-prune-output {note: variable 'D\.[0-9]+' declared in block isn't candidate for adjusting OpenACC privatization level: not addressable} }
! { dg-additional-options -Wuninitialized }
! It's only with Tcl 8.5 (released in 2007) that "the variable 'varName'
! passed to 'incr' may be unset, and in that case, it will be set to [...]",
! so to maintain compatibility with earlier Tcl releases, we manually
@ -27,10 +29,16 @@ program main
implicit none (type, external)
integer :: j
integer, allocatable :: A(:)
! { dg-note {'a' declared here} {} { target *-*-* } .-1 }
character(len=:), allocatable :: my_str
character(len=15), allocatable :: my_str15
A = [(3*j, j=1, 10)]
! { dg-bogus {'a\.offset' is used uninitialized} {PR77504 etc.} { xfail *-*-* } .-1 }
! { dg-bogus {'a\.dim\[0\]\.lbound' is used uninitialized} {PR77504 etc.} { xfail *-*-* } .-2 }
! { dg-bogus {'a\.dim\[0\]\.ubound' is used uninitialized} {PR77504 etc.} { xfail *-*-* } .-3 }
! { dg-bogus {'a\.dim\[0\]\.lbound' may be used uninitialized} {PR77504 etc.} { xfail { ! __OPTIMIZE__ } } .-4 }
! { dg-bogus {'a\.dim\[0\]\.ubound' may be used uninitialized} {PR77504 etc.} { xfail { ! __OPTIMIZE__ } } .-5 }
call foo (A, size(A))
call bar (A)
my_str = "1234567890"

View File

@ -1,5 +1,7 @@
! { dg-do run }
! { dg-additional-options -Wuninitialized }
! { dg-additional-options "-Wopenacc-parallelism" } for testing/documenting
! aspects of that functionality.
@ -36,6 +38,8 @@ subroutine redsub_gang(sum, n, c)
!$acc parallel copyin (n, c) num_gangs(n) copy(sum)
!$acc loop reduction(+:sum) gang
! { dg-bogus {'sum\.[0-9]+' is used uninitialized} TODO { xfail *-*-* } .-1 }
! { dg-note {'sum\.[0-9]+' was declared here} {} { target *-*-* } .-2 }
do i = 1, n
sum = sum + c
end do
@ -50,6 +54,8 @@ subroutine redsub_worker(sum, n, c)
!$acc parallel copyin (n, c) num_workers(4) vector_length (32) copy(sum)
! { dg-warning "region is vector partitioned but does not contain vector partitioned code" "" { target *-*-* } .-1 }
!$acc loop reduction(+:sum) worker
! { dg-bogus {'sum\.[0-9]+' is used uninitialized} TODO { xfail *-*-* } .-1 }
! { dg-note {'sum\.[0-9]+' was declared here} {} { target *-*-* } .-2 }
do i = 1, n
sum = sum + c
end do
@ -63,6 +69,8 @@ subroutine redsub_vector(sum, n, c)
!$acc parallel copyin (n, c) vector_length(32) copy(sum)
!$acc loop reduction(+:sum) vector
! { dg-bogus {'sum\.[0-9]+' is used uninitialized} TODO { xfail *-*-* } .-1 }
! { dg-note {'sum\.[0-9]+' was declared here} {} { target *-*-* } .-2 }
do i = 1, n
sum = sum + c
end do
@ -76,6 +84,8 @@ subroutine redsub_combined(sum, n, c)
!$acc parallel num_gangs (8) num_workers (4) vector_length(32) copy(sum)
!$acc loop reduction(+:sum) gang worker vector
! { dg-bogus {'sum\.[0-9]+' is used uninitialized} TODO { xfail *-*-* } .-1 }
! { dg-note {'sum\.[0-9]+' was declared here} {} { target *-*-* } .-2 }
do i = 1, n
sum = sum + c
end do
@ -92,8 +102,12 @@ subroutine redsub_nested(sum, n, c)
!$acc parallel num_gangs (8) copy(sum)
!$acc loop reduction(+:sum) gang
! { dg-bogus {'sum\.[0-9]+' is used uninitialized} TODO { xfail *-*-* } .-1 }
! { dg-note {'sum\.[0-9]+' was declared here} {} { target *-*-* } .-2 }
do i = 1, ii
!$acc loop reduction(+:sum) vector
! { dg-bogus {'sum\.[0-9]+' may be used uninitialized} TODO { xfail { ! __OPTIMIZE__ } } .-1 }
! { dg-note {'sum\.[0-9]+' was declared here} {} { target { ! __OPTIMIZE__ } } .-2 }
do j = 1, jj
sum = sum + c
end do

View File

@ -1,5 +1,7 @@
! { dg-do run }
! { dg-additional-options -Wuninitialized }
!TODO
! { dg-xfail-run-if TODO { openacc_radeon_accel_selected && { ! __OPTIMIZE__ } } }
@ -62,6 +64,8 @@ subroutine redsub_bogus(sum, n)
!$acc parallel firstprivate(sum)
!$acc loop gang worker vector reduction (+:sum)
! { dg-bogus {'sum\.[0-9]+' is used uninitialized} TODO { xfail *-*-* } .-1 }
! { dg-note {'sum\.[0-9]+' was declared here} {} { target *-*-* } .-2 }
do i = 1, n
sum = sum + 1
end do
@ -80,6 +84,8 @@ subroutine redsub_combined(sum, n, arr)
sum = i;
!$acc loop reduction(+:sum)
! { dg-bogus {'sum\.[0-9]+' may be used uninitialized} TODO { xfail { ! __OPTIMIZE__ } } .-1 }
! { dg-note {'sum\.[0-9]+' was declared here} {} { target { ! __OPTIMIZE__ } } .-2 }
do j = 1, n
sum = sum + 1
end do

View File

@ -2,6 +2,8 @@
! { dg-do run }
! { dg-additional-options -Wuninitialized }
module prm
implicit none
@ -14,8 +16,12 @@ subroutine param_reduction(var)
!$acc parallel copy(var)
!$acc loop reduction(+ : var) gang
! { dg-bogus {'var\.[0-9]+' is used uninitialized} TODO { xfail *-*-* } .-1 }
! { dg-note {'var\.[0-9]+' was declared here} {} { target *-*-* } .-2 }
do k=1,10
!$acc loop vector reduction(+ : var)
! { dg-bogus {'var\.[0-9]+' may be used uninitialized} TODO { xfail { ! __OPTIMIZE__ } } .-1 }
! { dg-note {'var\.[0-9]+' was declared here} {} { target { ! __OPTIMIZE__ } } .-2 }
do j=1,100
var = var + 1.0
enddo