On Fri, Jan 14, 2022 at 12:45:54PM +0100, Tobias Burnus wrote: > On 14.01.22 10:10, Thomas Schwinge wrote: > > > + integer :: x > > > ... > > > + !$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: > > FAIL: gfortran.dg/gomp/allocate-2.f90 -O (test for errors, line 36) > > > > 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? > > Alternatively, you could use 'integer(kind=1)' (which is a 1-byte/8-bits > type.) I assume we do not have any platform which still uses 8-bit > pointers and supports libgomp :-)
If we want to check intptr_t, we should guard the dg-error with "" { target { lp64 || llp64 } } or so. Otherwise yes, we can add some other kind and hope it is not the same as omp_allocator_handle_kind. Or we can do both, keep the current one with the target lp64 || llp64 and add another one with some integer(kind=1). Jakub