3 ! associated_target_7.f90: Test the fix for PR98565.
5 ! Contributed by Yves Secretan <yves.secretan@ete.inrs.ca>
12 TYPE, PUBLIC
:: DT_GRID_T
18 TYPE, PUBLIC
:: LM_ELEM_T
19 CLASS(DT_GRID_T
), POINTER :: PGRID
21 PROCEDURE
, PUBLIC
:: REQPGRID
=> LM_ELEM_REGPGRID
24 TYPE, PUBLIC
:: PS_SN0N_T
25 CLASS(DT_GRID_T
), POINTER :: PGRID
28 PROCEDURE
, PUBLIC
:: ASGOELE
=> PS_SN0N_ASGOELE
33 !------------------------------------------------------------------------
34 !------------------------------------------------------------------------
35 FUNCTION LM_ELEM_REGPGRID(SELF
) RESULT(PGRID
)
36 CLASS(DT_GRID_T
), POINTER :: PGRID
37 CLASS(LM_ELEM_T
), INTENT(IN
) :: SELF
40 END FUNCTION LM_ELEM_REGPGRID
42 !------------------------------------------------------------------------
43 !------------------------------------------------------------------------
44 FUNCTION PS_SN0N_ASGOELE(SELF
, OELE
) RESULT(ERMSG
)
47 CLASS(PS_SN0N_T
), INTENT(IN
) :: SELF
48 CLASS(LM_ELEM_T
), INTENT(IN
) :: OELE
50 !CLASS(DT_GRID_T), POINTER :: PGRID
52 !------------------------------------------------------------------------
54 ! ASSOCIATED with temp variable compiles
55 !PGRID => OELE%REQPGRID()
56 !ISOK = ASSOCIATED(SELF%PGRID, PGRID)
58 ! ASSOCIATE without temp variable crashes with ICE
59 ISOK
= ASSOCIATED(SELF
%PGRID
, OELE
%REQPGRID())
64 END FUNCTION PS_SN0N_ASGOELE
70 CLASS(PS_SN0N_T
), ALLOCATABLE
:: SELF
71 CLASS(LM_ELEM_T
), ALLOCATABLE
:: OELE
72 TYPE (DT_GRID_T
), TARGET
:: GRID1
= DT_GRID_T (42)
73 TYPE (DT_GRID_T
), TARGET
:: GRID2
= DT_GRID_T (84)
75 ALLOCATE (PS_SN0N_T
:: SELF
)
76 ALLOCATE (LM_ELEM_T
:: OELE
)
80 IF (SELF
%ASGOELE (OELE
) .NE
. 0) STOP 1
83 IF (SELF
%ASGOELE (OELE
) .NE
. 0) STOP 2
86 IF (SELF
%ASGOELE (OELE
) .NE
. 1) STOP 3