| ! { dg-do compile } |
| ! Tests the fix for PR30273, in which the pointer assignment was |
| ! wrongly determined to have dependence because NULL() was not |
| ! recognised by the analysis. |
| ! |
| ! Contributed by Harald Anlauf <anlauf@gmx.de> |
| ! |
| module gfcbug49 |
| implicit none |
| |
| type spot_t |
| integer, pointer :: vm(:,:,:) |
| end type spot_t |
| |
| type rc_t |
| integer :: n |
| type(spot_t), pointer :: spots(:) => NULL() |
| end type rc_t |
| |
| contains |
| |
| subroutine construct (rc, n) |
| type(rc_t), intent(out) :: rc |
| integer , intent(in) :: n |
| integer :: k |
| rc% n = n |
| allocate (rc% spots (n)) |
| forall (k=1:n) |
| rc% spots (k)% vm => NULL() ! gfortran didn't swallow this |
| end forall |
| end subroutine construct |
| |
| end module gfcbug49 |