1! { dg-do compile } 2! 3! PR 45290: [F08] pointer initialization 4! 5! Contributed by Janus Weil <janus@gcc.gnu.org> 6 7subroutine sub 8 implicit none 9 10 real, target, save :: r 11 integer, target, save, dimension(1:3) :: v 12 13 integer, save :: i 14 integer, target :: j 15 integer, target, save, allocatable :: a 16 17 18 integer, pointer :: dp0 => 13 ! { dg-error "Error in pointer initialization" } 19 integer, pointer :: dp1 => r ! { dg-error "Different types in pointer assignment" } 20 integer, pointer :: dp2 => v ! { dg-error "Different ranks in pointer assignment" } 21 integer, pointer :: dp3 => i ! { dg-error "is neither TARGET nor POINTER" } 22 integer, pointer :: dp4 => j ! { dg-error "must have the SAVE attribute" } 23 integer, pointer :: dp5 => a ! { dg-error "must not be ALLOCATABLE" } 24 25 type :: t 26 integer, pointer :: dpc0 => 13 ! { dg-error "Error in pointer initialization" } 27 end type t 28 29 type t2 30 integer, pointer :: dpc1 => r ! { dg-error "attempted assignment of REAL.4. to INTEGER.4." } 31 end type t2 32 33 type t3 34 integer, pointer :: dpc2 => v ! { dg-error "Different ranks in pointer assignment" } 35 end type t3 36 37 type t4 38 integer, pointer :: dpc3 => i ! { dg-error "Pointer assignment target is neither TARGET nor POINTER" } 39 end type t4 40 41 type t5 42 integer, pointer :: dpc4 => j ! { dg-error "must have the SAVE attribute" } 43 end type t5 44 45 type t6 46 integer, pointer :: dpc5 => a ! { dg-error "must not be ALLOCATABLE" } 47 end type t6 48 49end subroutine 50