Differences in inlining between PGI5.2 and PGI 5.1?

Hi all,

I enclose at the end of this message a simple example whose compilation was fine in PGI 5.1 when inline directives were used.
PGI 5.2, however, raises the warning message,

PGF90-W-0268-Cannot inline subprogram; common block mismatch

I have found no helpful hints in the product documentation to solve this problem

Is the inlining policy changed in PGI 5.2,
with respect to PGI 5.1 ?

Thanks in advance

!!$!!!

module mod_prova

implicit none

integer :: nslaves
integer, dimension(:), allocatable :: Array

end module mod_prova

!!$!!!

program prova

use mod_prova

implicit none

integer :: i

nslaves = 7

allocate(Array(2))

i = 5
if (i /= 5) call iinc(‘A’, i)

contains

SUBROUTINE iinc(label, flag)

!!$ use mod_prova

CHARACTER(1), INTENT(IN) :: label
INTEGER , INTENT(IN) :: flag

IF (label == ‘D’) THEN
WRITE(,’(A,I3)’) "deallocate ==> ", flag
ELSE
WRITE(
,’(A,I3)’) "ALLOCATE ==> ", flag
END IF

WRITE(,) nslaves

END SUBROUTINE iinc

end program prova

Hello,

It appears that when we changed the way we represented pointers to allocatables, pointer arrays, and pointers in the 5.2 pgf90, it inhibited the inlining of this function. Note that the problem should be corrected in the up coming 6.0 release.

Thanks,
Mat