Hi Abid! (Remember to CC <fort...@gcc.gnu.org> for 'gcc/fortran/' etc. changes.)
On 2022-01-11T22:31:54+0000, Hafiz Abid Qadeer <abid_qad...@mentor.com> wrote: > --- /dev/null > +++ b/gcc/testsuite/gfortran.dg/gomp/allocate-2.f90 > @@ -0,0 +1,45 @@ > +! { dg-do compile } > + > +module omp_lib_kinds > + use iso_c_binding, only: c_int, c_intptr_t > + implicit none > + private :: c_int, c_intptr_t > + integer, parameter :: omp_allocator_handle_kind = c_intptr_t > + > +end module > + > +subroutine foo(x) > + use omp_lib_kinds > + implicit none > + integer :: x > + > + !$omp task allocate (x) ! { dg-error "'x' specified in 'allocate' clause > at .1. but not in an explicit privatization clause" } > + x=1 > + !$omp end task > + > + !$omp parallel allocate (x) ! { dg-error "'x' specified in 'allocate' > clause at .1. but not in an explicit privatization clause" } > + x=2 > + !$omp end parallel > + > + !$omp parallel allocate (x) shared (x) ! { dg-error "'x' specified in > 'allocate' clause at .1. but not in an explicit privatization clause" } > + x=3 > + !$omp end parallel > + > + !$omp parallel private (x) allocate (x) allocate (x) ! { dg-warning "'x' > appears more than once in 'allocate' clauses at .1." } > + x=4 > + !$omp end parallel > + > + !$omp parallel private (x) allocate (x, x) ! { dg-warning "'x' appears > more than once in 'allocate' clauses at .1." } > + x=5 > + !$omp end parallel > + > + !$omp parallel allocate (0: x) private(x) ! { dg-error "Expected integer > expression of the 'omp_allocator_handle_kind' kind at .1." } We do for x86_64 default '-m64', but for '-m32' and '-mx32' compilation, we're not seeing this latter diagnostic: PASS: gfortran.dg/gomp/allocate-1.f90 -O (test for excess errors) PASS: gfortran.dg/gomp/allocate-2.f90 -O (test for errors, line 16) PASS: gfortran.dg/gomp/allocate-2.f90 -O (test for errors, line 20) PASS: gfortran.dg/gomp/allocate-2.f90 -O (test for errors, line 24) FAIL: gfortran.dg/gomp/allocate-2.f90 -O (test for errors, line 36) PASS: gfortran.dg/gomp/allocate-2.f90 -O (test for errors, line 40) PASS: gfortran.dg/gomp/allocate-2.f90 -O (test for warnings, line 28) PASS: gfortran.dg/gomp/allocate-2.f90 -O (test for warnings, line 32) PASS: gfortran.dg/gomp/allocate-2.f90 -O (test for excess errors) I suppose the reason is unintended congruence of data types? Would it work to make 'x' a floating-point data type, for example -- or is this meant to explicitly check certain integer data type characteristics? Grüße Thomas > + x=6 > + !$omp end parallel > + > + !$omp parallel private (x) allocate (0.1 : x) ! { dg-error "Expected > integer expression of the 'omp_allocator_handle_kind' kind at .1." } > + x=7 > + !$omp end parallel > + > +end subroutine ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955