! { dg-do run } program foo real, pointer :: p real, save, target :: x = 42 data p / x / if (p /= 42) stop 1 call bar end program foo subroutine bar type bah integer, pointer :: p end type bah type(bah) a integer, save, target :: i = 42 data a%p / i / if (a%p /= 42) stop 2 end subroutine