! { dg-do run } ! PR 78290 - used to give an ICE (with VOLATILE) and wrong ! code without it. ! Original test case by Andy Bennet. PROGRAM main IMPLICIT NONE INTEGER,PARAMETER::KI=4 TYPE mytype INTEGER(KIND=KI)::i=1_KI END TYPE mytype TYPE(mytype), DIMENSION(9),TARGET, SAVE::ta INTEGER(KIND=KI),DIMENSION(3),TARGET, SAVE::ia = 3_KI INTEGER(KIND=KI),DIMENSION(:),POINTER ::ia2 =>NULL() INTEGER(KIND=KI),DIMENSION(:),POINTER ::ip =>NULL() volatile::ip ALLOCATE(ia2(5)); ia2=2_KI ip=>ia if (size(ip) /= 3) stop 1 CALL sub1(ip) if (size(ip) /= 5) stop 2 if (any(ia /= [3,3,3])) stop 3 if (any (ip /= [2,2,2,2,2])) stop 4 ip=>ta%i CONTAINS SUBROUTINE sub1(ipa) INTEGER(KIND=KI),DIMENSION(:),POINTER::ipa ipa => ia2 END SUBROUTINE sub1 END PROGRAM main