commit 6d4981350168f1eb3f72149bd7e05b9ba6bec1fd Author: Tobias Burnus Date: Fri Feb 4 14:51:01 2022 +0100 libgomp.fortran/allocate-1.f90: Minor cleanup libgomp/ChangeLog: * testsuite/libgomp.fortran/allocate-1.c (is_64bit_aligned): Renamed from is_64bit_aligned_. * testsuite/libgomp.fortran/allocate-1.f90: Fix interface decl and use it, more implicit none, remove unused argument. diff --git a/libgomp/testsuite/libgomp.fortran/allocate-1.c b/libgomp/testsuite/libgomp.fortran/allocate-1.c index d33acc6feef..cb6d355afc6 100644 --- a/libgomp/testsuite/libgomp.fortran/allocate-1.c +++ b/libgomp/testsuite/libgomp.fortran/allocate-1.c @@ -1,7 +1,7 @@ #include int -is_64bit_aligned_ (uintptr_t a) +is_64bit_aligned (uintptr_t a) { return ( (a & 0x3f) == 0); } diff --git a/libgomp/testsuite/libgomp.fortran/allocate-1.f90 b/libgomp/testsuite/libgomp.fortran/allocate-1.f90 index 35d1750b878..062278f9908 100644 --- a/libgomp/testsuite/libgomp.fortran/allocate-1.f90 +++ b/libgomp/testsuite/libgomp.fortran/allocate-1.f90 @@ -5,30 +5,30 @@ module m use omp_lib use iso_c_binding - implicit none + implicit none (type, external) interface integer(c_int) function is_64bit_aligned (a) bind(C) import :: c_int - integer :: a + type(*) :: a end end interface -end module m -subroutine foo (x, p, q, px, h, fl) +contains + +subroutine foo (x, p, q, h, fl) use omp_lib use iso_c_binding integer :: x integer, dimension(4) :: p integer, dimension(4) :: q - integer :: px integer (kind=omp_allocator_handle_kind) :: h integer :: fl integer :: y integer :: r, i, i1, i2, i3, i4, i5 integer :: l, l3, l4, l5, l6 - integer :: n, n1, n2, n3, n4 + integer :: n, n2, n3, n4 integer :: j2, j3, j4 integer, dimension(4) :: l2 integer, dimension(4) :: r2 @@ -74,6 +74,8 @@ subroutine foo (x, p, q, px, h, fl) if (x /= 42) then stop 1 end if + + !!$omp barrier v(1) = 7 if ( (and(fl, 2) /= 0) .and. & ((is_64bit_aligned(x) == 0) .or. & @@ -95,7 +97,7 @@ subroutine foo (x, p, q, px, h, fl) stop 4 end if !$omp end parallel - +stop !$omp teams !$omp parallel private (y) firstprivate (x, w) allocate (h: x, y, w) @@ -305,11 +307,13 @@ subroutine foo (x, p, q, px, h, fl) .or. r2(1) /= (5 * p(3)) .or. r2(4) /= (6 * p(3))) then stop 25 end if - end subroutine +end module m program main use omp_lib + use m + implicit none (type, external) integer, dimension(4) :: p integer, dimension(4) :: q @@ -323,11 +327,11 @@ program main if (a == omp_null_allocator) stop 1 call omp_set_default_allocator (omp_default_mem_alloc); - call foo (42, p, q, 2, a, 0); - call foo (42, p, q, 2, omp_default_mem_alloc, 0); - call foo (42, p, q, 2, a, 1); + call foo (42, p, q, a, 0); + call foo (42, p, q, omp_default_mem_alloc, 0); + call foo (42, p, q, a, 1); call omp_set_default_allocator (a); - call foo (42, p, q, 2, omp_null_allocator, 3); - call foo (42, p, q, 2, omp_default_mem_alloc, 2); + call foo (42, p, q, omp_null_allocator, 3); + call foo (42, p, q, omp_default_mem_alloc, 2); call omp_destroy_allocator (a); end