! { dg-do run } | |
! | |
! From posting by Spectrum to clf on thread entitled "Bounds for array pointer dummy argument". | |
! | |
PROGRAM X | |
implicit none | |
TYPE T | |
INTEGER :: I | |
END TYPE T | |
TYPE(T), TARGET :: T1( 0:3 ) | |
associate( P => T1 % I ) | |
call check (lbound (P, 1), ubound (P, 1) ,1 , 4) | |
endassociate | |
associate( P2 => T1(:) % I ) | |
call check (lbound (P2, 1), ubound (P2, 1) ,1 , 4) | |
endassociate | |
associate( Q => T1 ) | |
call check (lbound (Q, 1), ubound (Q, 1) ,0 , 3) | |
endassociate | |
associate( Q2 => T1(:) ) | |
call check (lbound (Q2, 1), ubound (Q2, 1) ,1 , 4) | |
endassociate | |
contains | |
subroutine check (lbnd, ubnd, lower, upper) | |
integer :: lbnd, ubnd, lower, upper | |
if (lbnd .ne. lower) STOP 1 | |
if (ubnd .ne. upper) STOP 2 | |
end subroutine | |
END PROGRAM X |