Files
gcc-reflection/libgomp/testsuite/libgomp.fortran/allocate-3.f90
Tobias Burnus bf2cf6f3f1 Fortran: Extend align-clause checks of OpenMP's allocate directive
gcc/fortran/ChangeLog:

	* openmp.cc (resolve_omp_clauses): Check also for
	power of two.

libgomp/ChangeLog:

	* testsuite/libgomp.fortran/allocate-3.f90: Fix ALIGN
	usage, remove unused -fdump-tree-original.
	* testsuite/libgomp.fortran/allocate-4.f90: New.
2023-02-01 14:51:00 +01:00

29 lines
1.3 KiB
Fortran

! { dg-do compile }
use omp_lib
implicit none
integer :: q, x,y,z
!$omp parallel allocate(align ( 64 ) x) ! { dg-error "37:Expected ':' at" }
!$omp parallel allocate(align ( 64 ), x) ! { dg-error "37:Expected ':' at" }
!$omp parallel allocate(allocator ( omp_high_bw_mem_alloc ) x) ! { dg-error "60:Expected ':' at" }
!$omp parallel allocate(allocator ( omp_high_bw_mem_alloc ) , x) ! { dg-error "60:Expected ':' at" }
!$omp parallel allocate( omp_high_bw_mem_alloc, align(12) : x) ! { dg-error "26:Expected variable list at" }
!$omp parallel allocate( align(12), omp_high_bw_mem_alloc : x) ! { dg-error "35:Expected ':' at" }
!$omp parallel allocate( omp_high_bw_mem_alloc x) ! { dg-error "26:Expected variable list at" }
!$omp parallel allocate( omp_high_bw_mem_alloc , x) firstprivate(x) ! { dg-error "'omp_high_bw_mem_alloc' specified in 'allocate' clause at \\(1\\) but not in an explicit privatization clause" }
! { dg-error "Object 'omp_high_bw_mem_alloc' is not a variable" "" { target *-*-* } .-1 }
!$omp end parallel
!$omp parallel allocate( omp_high_bw_mem_alloc , x) firstprivate(x, omp_high_bw_mem_alloc)
! { dg-error "Object 'omp_high_bw_mem_alloc' is not a variable" "" { target *-*-* } .-1 }
!$omp end parallel
!$omp parallel allocate( align(128) : x) firstprivate(x) ! OK
!$omp end parallel
end