From 252b8319adcd4b6538bde81628d6a981c348a89b Mon Sep 17 00:00:00 2001 From: Tobias Burnus Date: Fri, 26 May 2023 18:13:47 +0200 Subject: [PATCH] Remove accidentally added gfortran.dg/gomp/allocate*-.f90 files I looked at the commit, proof reading the commit, but missed a in the changelog, fixing it with 'git ... --amend', the new files sneaked in - and the auto-accept new files without ChangeLog entry feature let it pass. Hence, remove those bogus files again that were added in r14-1299-g366e3d30b8d5dc2bf226696987dfbd2a7df192f5 gcc/testsuite: * gfortran.dg/gomp/allocate-4.f90: Remove autoadded file. * gfortran.dg/gomp/allocate-5.f90: Likewise. * gfortran.dg/gomp/allocate-6.f90: Likewise. * gfortran.dg/gomp/allocate-7.f90: Likewise. * gfortran.dg/gomp/allocators-1.f90: Likewise. * gfortran.dg/gomp/allocators-2.f90: Likewise. --- gcc/testsuite/gfortran.dg/gomp/allocate-4.f90 | 54 ---- gcc/testsuite/gfortran.dg/gomp/allocate-5.f90 | 93 ------- gcc/testsuite/gfortran.dg/gomp/allocate-6.f90 | 103 -------- gcc/testsuite/gfortran.dg/gomp/allocate-7.f90 | 230 ------------------ .../gfortran.dg/gomp/allocators-1.f90 | 28 --- .../gfortran.dg/gomp/allocators-2.f90 | 22 -- 6 files changed, 530 deletions(-) delete mode 100644 gcc/testsuite/gfortran.dg/gomp/allocate-4.f90 delete mode 100644 gcc/testsuite/gfortran.dg/gomp/allocate-5.f90 delete mode 100644 gcc/testsuite/gfortran.dg/gomp/allocate-6.f90 delete mode 100644 gcc/testsuite/gfortran.dg/gomp/allocate-7.f90 delete mode 100644 gcc/testsuite/gfortran.dg/gomp/allocators-1.f90 delete mode 100644 gcc/testsuite/gfortran.dg/gomp/allocators-2.f90 diff --git a/gcc/testsuite/gfortran.dg/gomp/allocate-4.f90 b/gcc/testsuite/gfortran.dg/gomp/allocate-4.f90 deleted file mode 100644 index a2dcf105ee1..00000000000 --- a/gcc/testsuite/gfortran.dg/gomp/allocate-4.f90 +++ /dev/null @@ -1,54 +0,0 @@ -module my_omp_lib - use iso_c_binding, only: c_intptr_t - !use omp_lib - implicit none - integer, parameter :: omp_allocator_handle_kind = c_intptr_t - - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_null_allocator = 0 - - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_default_mem_alloc = 1 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_large_cap_mem_alloc = 2 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_const_mem_alloc = 3 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_high_bw_mem_alloc = 4 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_low_lat_mem_alloc = 5 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_cgroup_mem_alloc = 6 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_pteam_mem_alloc = 7 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_thread_mem_alloc = 8 -end module my_omp_lib - -subroutine one(n, my_alloc) - use my_omp_lib - implicit none -integer :: n -integer(kind=omp_allocator_handle_kind), intent(in) :: my_alloc - -!stack variables: -integer :: a,b,c(n),d(5),e(2) -!$omp allocate(a) ! { dg-error "Sorry, declarative !.OMP ALLOCATE at .1. not yet supported" } -!$omp allocate ( b , c ) align ( 32) allocator (my_alloc) -!$omp allocate (d) align( 128 ) -!$omp allocate( e ) allocator( omp_high_bw_mem_alloc ) - -!saved vars -integer, save :: k,l,m(5),r(2) -!$omp allocate(k) align(16) , allocator (omp_large_cap_mem_alloc) -!$omp allocate ( l ) allocator (omp_large_cap_mem_alloc) , align ( 32) -!$omp allocate (m) align( 128 ),allocator( omp_high_bw_mem_alloc ) -!$omp allocate( r ) allocator( omp_high_bw_mem_alloc ) - -!common /block/ -integer :: q,x,y(2),z(5) -common /com1/ q,x -common /com2/ y,z -!$omp allocate ( / com1/) align( 128 ) allocator( omp_high_bw_mem_alloc ) -!$omp allocate(/com2 / ) allocator( omp_high_bw_mem_alloc ) -end diff --git a/gcc/testsuite/gfortran.dg/gomp/allocate-5.f90 b/gcc/testsuite/gfortran.dg/gomp/allocate-5.f90 deleted file mode 100644 index bf9c781dcc5..00000000000 --- a/gcc/testsuite/gfortran.dg/gomp/allocate-5.f90 +++ /dev/null @@ -1,93 +0,0 @@ -module my_omp_lib - use iso_c_binding, only: c_intptr_t - !use omp_lib - implicit none - integer, parameter :: omp_allocator_handle_kind = c_intptr_t - - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_null_allocator = 0 - - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_default_mem_alloc = 1 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_large_cap_mem_alloc = 2 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_const_mem_alloc = 3 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_high_bw_mem_alloc = 4 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_low_lat_mem_alloc = 5 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_cgroup_mem_alloc = 6 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_pteam_mem_alloc = 7 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_thread_mem_alloc = 8 - type t - integer :: a - end type t -end module my_omp_lib - -subroutine zero() - !$omp assumes absent (allocators) - - !$omp assume absent (allocators) - !$omp end assume -end - -subroutine two(c,x2,y2) - use my_omp_lib - implicit none - integer, allocatable :: a, b(:), c(:,:) - type(t), allocatable :: x1 - type(t), pointer :: x2(:) - class(t), allocatable :: y1 - class(t), pointer :: y2(:) - - !$omp flush ! some executable statement - !$omp allocate(a) ! { dg-message "not yet supported" } - allocate(a,b(4),c(3,4)) - deallocate(a,b,c) - - !$omp allocate(x1,y1,x2,y2) ! { dg-message "not yet supported" } - allocate(x1,y1,x2(5),y2(5)) - deallocate(x1,y1,x2,y2) - - !$omp allocate(b,a) align ( 128 ) ! { dg-message "not yet supported" } - !$omp allocate align ( 64 ) - allocate(a,b(4),c(3,4)) - deallocate(a,b,c) -end - -subroutine three(c) - use my_omp_lib - implicit none - integer :: q - integer, allocatable :: a, b(:), c(:,:) - - call foo() ! executable stmt - !$omp allocate allocator( omp_large_cap_mem_alloc ) , align(64) ! { dg-message "not yet supported" } - !$omp allocate(b) allocator( omp_high_bw_mem_alloc ) - !$omp allocate(c) allocator( omp_high_bw_mem_alloc ) - allocate(a,b(4),c(3,4)) - deallocate(a,b,c) - - block - q = 5 ! executable stmt - !$omp allocate(a) align(64) ! { dg-message "not yet supported" } - !$omp allocate(b) allocator( omp_high_bw_mem_alloc ), align(32) - !$omp allocate(c) allocator( omp_thread_mem_alloc ) - allocate(a,b(4),c(3,4)) - deallocate(a,b,c) - end block - call inner -contains - subroutine inner - call foo() ! executable stmt - !$omp allocate(a) align(64) ! { dg-message "not yet supported" } - !$omp allocate(b) allocator( omp_high_bw_mem_alloc ), align(32) - !$omp allocate(c) allocator( omp_thread_mem_alloc ) - allocate(a,b(4),c(3,4)) - deallocate(a,b,c) - end subroutine inner -end diff --git a/gcc/testsuite/gfortran.dg/gomp/allocate-6.f90 b/gcc/testsuite/gfortran.dg/gomp/allocate-6.f90 deleted file mode 100644 index 73e5bbcf71b..00000000000 --- a/gcc/testsuite/gfortran.dg/gomp/allocate-6.f90 +++ /dev/null @@ -1,103 +0,0 @@ -module my_omp_lib - use iso_c_binding, only: c_intptr_t - !use omp_lib - implicit none - integer, parameter :: omp_allocator_handle_kind = c_intptr_t - - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_null_allocator = 0 - - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_default_mem_alloc = 1 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_large_cap_mem_alloc = 2 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_const_mem_alloc = 3 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_high_bw_mem_alloc = 4 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_low_lat_mem_alloc = 5 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_cgroup_mem_alloc = 6 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_pteam_mem_alloc = 7 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_thread_mem_alloc = 8 - type t - integer,allocatable :: a - integer,pointer :: b(:,:) - end type t -end module my_omp_lib - -subroutine zero() - !$omp assumes absent (allocate) ! { dg-error "Invalid 'ALLOCATE' directive at .1. in ABSENT clause: declarative, informational and meta directives not permitted" } - - !$omp assume absent (allocate) ! { dg-error "Invalid 'ALLOCATE' directive at .1. in ABSENT clause: declarative, informational and meta directives not permitted" } - !!$omp end assume -end - -subroutine alloc(c,x2,y2) - use my_omp_lib - implicit none - integer, allocatable :: a, b(:), c(:,:) - type(t) :: x1,x2 - class(t) :: y1,y2 - allocatable :: x1, y1 - - !$omp flush ! some executable statement - - !$omp allocate(x2%a,x2%b,y2%a,y2%b) allocator(omp_pteam_mem_alloc) align(64) ! { dg-error "Sorry, structure-element list item at .1. in ALLOCATE directive is not yet supported" } - allocate(x2%a,x2%b(3,4),y2%a,y2%b(3,4)) - - !$omp allocate(b(3)) align ( 64 ) ! { dg-error "Unexpected expression as list item at .1. in ALLOCATE directive" } - allocate(b(3)) -end - -subroutine one(n, my_alloc) - use my_omp_lib - implicit none -integer :: n -integer(kind=omp_allocator_handle_kind), intent(in) :: my_alloc - -integer :: a,b,c(n),d(5),e(2) -integer, save :: k,l,m(5),r(2) -integer :: q,x,y(2),z(5) -common /com1/ q,x -common /com2/ y,z -integer, allocatable :: alloc -integer, pointer :: ptr - -!$omp allocate(q) ! { dg-error "'q' at .1. is part of the common block '/com1/' and may only be specificed implicitly via the named common block" } - -!$omp allocate(d(:)) ! { dg-error "Unexpected expression as list item at .1. in ALLOCATE directive" } -!$omp allocate(a) align(4), align(4) ! { dg-error "Duplicated 'align' clause" } -!$omp allocate( e ) allocator( omp_high_bw_mem_alloc ), align(32),allocator( omp_high_bw_mem_alloc ) ! { dg-error "Duplicated 'allocator' clause" } - -!$omp allocate align(32) ! { dg-error "'!.OMP ALLOCATE' directive at .1. must either have a variable argument or, if associated with an ALLOCATE stmt, must be preceded by an executable statement or OpenMP construct" } - -!$omp allocate(alloc) align(128) ! { dg-error "'!.OMP ALLOCATE' directive at .1. associated with an ALLOCATE stmt must be preceded by an executable statement or OpenMP construct; note the variables in the list all have the allocatable or pointer attribute" } -!$omp allocate(ptr) align(128) ! { dg-error "'!.OMP ALLOCATE' directive at .1. associated with an ALLOCATE stmt must be preceded by an executable statement or OpenMP construct; note the variables in the list all have the allocatable or pointer attribute" } - -!$omp allocate(e) allocate(omp_thread_mem_alloc) ! { dg-error "Expected ALIGN or ALLOCATOR clause" } -end - -subroutine two() - integer, allocatable :: a,b,c - - call foo() - !$omp allocate(a) - a = 5 ! { dg-error "Unexpected assignment at .1.; expected ALLOCATE or !.OMP ALLOCATE statement" } - - !$omp allocate ! { dg-error "!.OMP ALLOCATE statements at .1. and .2. have both no list item but only one may" } - !$omp allocate(b) - !$omp allocate ! { dg-error "!.OMP ALLOCATE statements at .1. and .2. have both no list item but only one may" } - allocate(a,b,c) - - !$omp allocate - allocate(a,b,c) ! allocate is no block construct, hence: - !$omp end allocate ! { dg-error "Unclassifiable OpenMP directive" } - - !$omp allocators allocate(align(64) : a, b) - !$omp allocators allocate(align(128) : c) ! { dg-error "Unexpected !.OMP ALLOCATORS at .1.; expected ALLOCATE statement after !.OMP ALLOCATORS" } - allocate(a,b,c) -end diff --git a/gcc/testsuite/gfortran.dg/gomp/allocate-7.f90 b/gcc/testsuite/gfortran.dg/gomp/allocate-7.f90 deleted file mode 100644 index c46899d8752..00000000000 --- a/gcc/testsuite/gfortran.dg/gomp/allocate-7.f90 +++ /dev/null @@ -1,230 +0,0 @@ -! { dg-additional-options "-fmax-errors=1000" } -module my_omp_lib - use iso_c_binding, only: c_intptr_t - !use omp_lib - implicit none - integer, parameter :: omp_allocator_handle_kind = c_intptr_t - - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_null_allocator = 0 - - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_default_mem_alloc = 1 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_large_cap_mem_alloc = 2 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_const_mem_alloc = 3 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_high_bw_mem_alloc = 4 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_low_lat_mem_alloc = 5 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_cgroup_mem_alloc = 6 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_pteam_mem_alloc = 7 - integer (kind=omp_allocator_handle_kind), & - parameter :: omp_thread_mem_alloc = 8 - type t - integer,allocatable :: a - integer,pointer :: b(:,:) - end type t - integer :: used -end module my_omp_lib - -subroutine one(n, my_alloc) - use my_omp_lib - implicit none -integer :: n -integer(kind=omp_allocator_handle_kind), intent(in) :: my_alloc - -integer :: a,b,c(n),d(5),e(2) -integer, save :: k,l,m(5),r(2) -integer :: q,x,y(2),z(5) -common /com1/ q,x -common /com2/ y,z -integer, allocatable :: alloc -integer, pointer :: ptr -integer, parameter :: prm=5 - -!$omp allocate(prm) align(64) ! { dg-error "Argument 'prm' at .1. to declarative !.OMP ALLOCATE directive must be a variable" } -! { dg-error "Sorry, declarative !.OMP ALLOCATE at .1. not yet supported" "" { target *-*-* } .-1 } - -!$omp allocate(used) allocator(omp_pteam_mem_alloc) ! { dg-error "Argument 'used' at .1. to declarative !.OMP ALLOCATE shall be in the same scope as the variable declaration" } -!$omp allocate(n) allocator(omp_pteam_mem_alloc) ! { dg-error "Unexpected dummy argument 'n' as argument at .1. to declarative !.OMP ALLOCATE" } - -!$omp allocate (x) align(128) ! { dg-error "'x' at .1. is part of the common block '/com1/' and may only be specificed implicitly via the named common block" } - -!$omp allocate (a, b, a) allocator (omp_pteam_mem_alloc) ! { dg-error "Duplicated variable 'a' in !.OMP ALLOCATE" } -contains - - subroutine inner - !$omp allocate(a) allocator(omp_pteam_mem_alloc) ! { dg-error "Argument 'a' at .1. to declarative !.OMP ALLOCATE shall be in the same scope as the variable declaration" } -! { dg-error "Sorry, declarative !.OMP ALLOCATE at .1. not yet supported" "" { target *-*-* } .-1 } - end -end - -subroutine three(n) - use my_omp_lib - implicit none -integer,value :: n -integer :: a,b,c(n),d(5),e(2) -integer, save :: k,l,m(5) -integer :: q,x,y(2),z(5),r -common /com4/ y,z -allocatable :: q -pointer :: b -!$omp allocate (c, d) allocator (omp_pteam_mem_alloc) -! { dg-error "Sorry, declarative !.OMP ALLOCATE at .1. not yet supported" "" { target *-*-* } .-1 } -!$omp allocate (/com4/) allocator (omp_pteam_mem_alloc) -!$omp allocate (c) allocator (omp_pteam_mem_alloc) ! { dg-error "Duplicated variable 'c' in !.OMP ALLOCATE" } -!$omp allocate (/com4/) allocator (omp_pteam_mem_alloc) ! { dg-error "Duplicated common block '/com4/' in !.OMP ALLOCATE" } - -!$omp allocate(q,x) ! { dg-error "Unexpected allocatable variable 'q' at .1. in declarative !.OMP ALLOCATE directive" } -!$omp allocate(b,e) ! { dg-error "Unexpected pointer variable 'b' at .1. in declarative !.OMP ALLOCATE directive" } -end - -subroutine four(n) - integer :: qq, rr, ss, tt, uu, vv,n -!$omp allocate (qq) align(3+n) ! { dg-error "ALIGN requires a scalar positive constant integer alignment expression at .1. that is a power of two" } -! { dg-error "Sorry, declarative !.OMP ALLOCATE at .1. not yet supported" "" { target *-*-* } .-1 } -!$omp allocate (rr) align([4]) ! { dg-error "ALIGN requires a scalar positive constant integer alignment expression at .1. that is a power of two" } -!$omp allocate (ss) align([4]) ! { dg-error "ALIGN requires a scalar positive constant integer alignment expression at .1. that is a power of two" } -!$omp allocate (tt) align(32.0) ! { dg-error "ALIGN requires a scalar positive constant integer alignment expression at .1. that is a power of two" } -!$omp allocate (uu) align(31) ! { dg-error "ALIGN requires a scalar positive constant integer alignment expression at .1. that is a power of two" } -end - -subroutine five(n,my_alloc) - use my_omp_lib - implicit none - integer :: qq, rr, ss, tt, uu, vv,n - integer(omp_allocator_handle_kind) :: my_alloc -!$omp allocate (qq) allocator(3.0) ! { dg-error "Expected integer expression of the 'omp_allocator_handle_kind' kind" } -! { dg-error "Sorry, declarative !.OMP ALLOCATE at .1. not yet supported" "" { target *-*-* } .-1 } -!$omp allocate (rr) allocator(3_2) ! { dg-error "Expected integer expression of the 'omp_allocator_handle_kind' kind" } -!$omp allocate (ss) allocator([omp_pteam_mem_alloc]) ! { dg-error "Expected integer expression of the 'omp_allocator_handle_kind' kind" } -!$omp allocate (tt) allocator(my_alloc) ! OK -end - - -subroutine five_SaveAll(n,my_alloc) - use my_omp_lib - implicit none - save - integer :: qq, rr, ss, tt, uu, vv,n - integer(omp_allocator_handle_kind) :: my_alloc -!$omp allocate (qq) allocator(3.0) ! { dg-error "Predefined allocator required in ALLOCATOR clause at .1. as the list item 'qq' at .2. has the SAVE attribute" } -! { dg-error "Sorry, declarative !.OMP ALLOCATE at .1. not yet supported" "" { target *-*-* } .-1 } -!$omp allocate (rr) allocator(3_2) ! { dg-error "Predefined allocator required in ALLOCATOR clause at .1. as the list item 'rr' at .2. has the SAVE attribute" } -!$omp allocate (ss) allocator([omp_pteam_mem_alloc]) ! { dg-error "Predefined allocator required in ALLOCATOR clause at .1. as the list item 'ss' at .2. has the SAVE attribute" } -!$omp allocate (tt) allocator(my_alloc) ! { dg-error "Predefined allocator required in ALLOCATOR clause at .1. as the list item 'tt' at .2. has the SAVE attribute" } -end - - -subroutine five_Save(n,my_alloc) - use my_omp_lib - implicit none - integer :: n - integer, save :: qq, rr, ss, tt, uu, vv - integer(omp_allocator_handle_kind) :: my_alloc -!$omp allocate (qq) allocator(3.0) ! { dg-error "Predefined allocator required in ALLOCATOR clause at .1. as the list item 'qq' at .2. has the SAVE attribute" } -! { dg-error "Sorry, declarative !.OMP ALLOCATE at .1. not yet supported" "" { target *-*-* } .-1 } -!$omp allocate (rr) allocator(3_2) ! { dg-error "Predefined allocator required in ALLOCATOR clause at .1. as the list item 'rr' at .2. has the SAVE attribute" } -!$omp allocate (ss) allocator([omp_pteam_mem_alloc]) ! { dg-error "Predefined allocator required in ALLOCATOR clause at .1. as the list item 'ss' at .2. has the SAVE attribute" } -!$omp allocate (tt) allocator(my_alloc) ! { dg-error "Predefined allocator required in ALLOCATOR clause at .1. as the list item 'tt' at .2. has the SAVE attribute" } -end - -module five_Module - use my_omp_lib - implicit none - integer, save :: qq, rr, ss, tt, uu, vv,n - integer(omp_allocator_handle_kind) :: my_alloc -!$omp allocate (qq) allocator(3.0) ! { dg-error "Predefined allocator required in ALLOCATOR clause at .1. as the list item 'qq' at .2. has the SAVE attribute" } -! { dg-error "Sorry, declarative !.OMP ALLOCATE at .1. not yet supported" "" { target *-*-* } .-1 } -!$omp allocate (rr) allocator(3_2) ! { dg-error "Predefined allocator required in ALLOCATOR clause at .1. as the list item 'rr' at .2. has the SAVE attribute" } -!$omp allocate (ss) allocator([omp_pteam_mem_alloc]) ! { dg-error "Predefined allocator required in ALLOCATOR clause at .1. as the list item 'ss' at .2. has the SAVE attribute" } -!$omp allocate (tt) allocator(my_alloc) ! { dg-error "Predefined allocator required in ALLOCATOR clause at .1. as the list item 'tt' at .2. has the SAVE attribute" } -end module - -program five_program - use my_omp_lib - implicit none - integer, save :: qq, rr, ss, tt, uu, vv,n - integer(omp_allocator_handle_kind) :: my_alloc -!$omp allocate (qq) allocator(3.0) ! { dg-error "Predefined allocator required in ALLOCATOR clause at .1. as the list item 'qq' at .2. has the SAVE attribute" } -! { dg-error "Sorry, declarative !.OMP ALLOCATE at .1. not yet supported" "" { target *-*-* } .-1 } -!$omp allocate (rr) allocator(3_2) ! { dg-error "Predefined allocator required in ALLOCATOR clause at .1. as the list item 'rr' at .2. has the SAVE attribute" } -!$omp allocate (ss) allocator([omp_pteam_mem_alloc]) ! { dg-error "Predefined allocator required in ALLOCATOR clause at .1. as the list item 'ss' at .2. has the SAVE attribute" } -!$omp allocate (tt) allocator(my_alloc) ! { dg-error "Predefined allocator required in ALLOCATOR clause at .1. as the list item 'tt' at .2. has the SAVE attribute" } -end program - - - -subroutine six(n,my_alloc) - use my_omp_lib - implicit none - integer :: qq, rr, ss, tt, uu, vv,n - common /com6qq/ qq - common /com6rr/ rr - common /com6ss/ ss - common /com6tt/ tt - integer(omp_allocator_handle_kind) :: my_alloc - -!$omp allocate (/com6qq/) allocator(3.0) ! { dg-error "Predefined allocator required in ALLOCATOR clause at .1. as the list item '/com6qq/' at .2. has the SAVE attribute" } -! { dg-error "Sorry, declarative !.OMP ALLOCATE at .1. not yet supported" "" { target *-*-* } .-1 } -!$omp allocate (/com6rr/) allocator(3_2) ! { dg-error "Predefined allocator required in ALLOCATOR clause at .1. as the list item '/com6rr/' at .2. has the SAVE attribute" } -!$omp allocate (/com6ss/) allocator([omp_pteam_mem_alloc]) ! { dg-error "Predefined allocator required in ALLOCATOR clause at .1. as the list item '/com6ss/' at .2. has the SAVE attribute" } -!$omp allocate (/com6tt/) allocator(my_alloc) ! { dg-error "Predefined allocator required in ALLOCATOR clause at .1. as the list item '/com6tt/' at .2. has the SAVE attribute" } -end - - -subroutine two() - use my_omp_lib - implicit none - integer,allocatable :: qq, rr, ss, tt, uu, vv,n - integer(omp_allocator_handle_kind) :: my_alloc - - call foo() -!$omp allocate (qq) allocator(3.0) ! { dg-error "Expected integer expression of the 'omp_allocator_handle_kind' kind" } -allocate(qq) -!$omp allocate (rr) allocator(3_2) ! { dg-error "Expected integer expression of the 'omp_allocator_handle_kind' kind" } -allocate(rr) -!$omp allocate (ss) allocator([omp_pteam_mem_alloc]) ! { dg-error "Expected integer expression of the 'omp_allocator_handle_kind' kind" } -allocate(ss) -!$omp allocate (tt) allocator(my_alloc) ! OK -allocate(tt) -end - -subroutine two_ptr() - use my_omp_lib - implicit none - integer,pointer :: qq, rr, ss, tt, uu, vv,n - integer(omp_allocator_handle_kind) :: my_alloc - - call foo() -!$omp allocate (qq) align(3+n) ! { dg-error "ALIGN requires a scalar positive constant integer alignment expression at .1." } -allocate(qq) -!$omp allocate (rr) align([4]) ! { dg-error "ALIGN requires a scalar positive constant integer alignment expression at .1." } -allocate(rr) -!$omp allocate (ss) align([4]) ! { dg-error "ALIGN requires a scalar positive constant integer alignment expression at .1." } -allocate(ss) -!$omp allocate (tt) align(32.0) ! { dg-error "ALIGN requires a scalar positive constant integer alignment expression at .1." } -allocate(tt) - -end - -subroutine next() - use my_omp_lib - implicit none - integer,allocatable :: qq, rr, ss, tt, uu, vv,n - integer(omp_allocator_handle_kind) :: my_alloc - - !$omp allocate(qq) ! { dg-error "'!.OMP ALLOCATE' directive at .1. associated with an ALLOCATE stmt must be preceded by an executable statement or OpenMP construct; note the variables in the list all have the allocatable or pointer attribute" } - allocate(qq,rr) - - !$omp allocate(uu,tt) - !$omp allocate(tt) ! { dg-warning "'tt' appears more than once in 'allocate" } - allocate(uu,tt) - - !$omp allocate(uu,vv) ! { dg-error "'uu' specified in 'allocate' at .1. but not in the associated ALLOCATE statement" } - allocate(vv) -end diff --git a/gcc/testsuite/gfortran.dg/gomp/allocators-1.f90 b/gcc/testsuite/gfortran.dg/gomp/allocators-1.f90 deleted file mode 100644 index b39f6d272c1..00000000000 --- a/gcc/testsuite/gfortran.dg/gomp/allocators-1.f90 +++ /dev/null @@ -1,28 +0,0 @@ -implicit none -integer, allocatable :: a, b -integer :: q -integer :: arr(2) - -!$omp allocators allocate(align(64): a) -block ! { dg-error "expected ALLOCATE statement after !.OMP ALLOCATORS" } -end block ! { dg-error "Expecting END PROGRAM statement" } - - -!$omp allocators allocate(align(64): a) - allocate(a, b) ! OK -!$omp end allocators - -!$omp allocators allocate(align(128): b) - allocate(a, b) ! OK (assuming not allocated) - - -!$omp allocators allocate(align(64): a) - allocate(a, b, stat=arr) ! { dg-error "Stat-variable at .1. must be a scalar INTEGER variable" } -!$omp end allocators - - -!$omp allocators allocate(align(64): a) - allocate(q) ! { dg-error "is neither a data pointer nor an allocatable variable" } -!$omp end allocators ! { dg-error "Unexpected !.OMP END ALLOCATORS" } - -end diff --git a/gcc/testsuite/gfortran.dg/gomp/allocators-2.f90 b/gcc/testsuite/gfortran.dg/gomp/allocators-2.f90 deleted file mode 100644 index 6fb80879ef7..00000000000 --- a/gcc/testsuite/gfortran.dg/gomp/allocators-2.f90 +++ /dev/null @@ -1,22 +0,0 @@ -implicit none -integer, allocatable :: a, b -integer :: q -integer :: arr(2) - -!$omp allocators allocate(align(64): a) - allocate(a, b) ! OK -!$omp end allocators - -!$omp allocators allocate(align(128): b) - allocate(a, b) ! OK (assuming not allocated) - - -!$omp allocators allocate(align(62.0): a) ! { dg-error "a scalar positive constant integer alignment expression" } - allocate(a) - - -!$omp allocators allocate(align(64): a, b) ! { dg-error "'b' specified in 'allocate' at \\(1\\) but not in the associated ALLOCATE statement" } - allocate(a) -!$omp end allocators - -end