! Check that lbound() and ubound() work correctly for assumed shapes. ! { dg-do run } program main integer, dimension (40, 80) :: a = 1 call test (a) contains subroutine test (b) integer, dimension (11:, -8:), target :: b integer, dimension (:, :), pointer :: ptr if (lbound (b, 1) .ne. 11) call abort if (ubound (b, 1) .ne. 50) call abort if (lbound (b, 2) .ne. -8) call abort if (ubound (b, 2) .ne. 71) call abort if (lbound (b (:, :), 1) .ne. 1) call abort if (ubound (b (:, :), 1) .ne. 40) call abort if (lbound (b (:, :), 2) .ne. 1) call abort if (ubound (b (:, :), 2) .ne. 80) call abort if (lbound (b (20:30:3, 40), 1) .ne. 1) call abort if (ubound (b (20:30:3, 40), 1) .ne. 4) call abort ptr => b if (lbound (ptr, 1) .ne. 11) call abort if (ubound (ptr, 1) .ne. 50) call abort if (lbound (ptr, 2) .ne. -8) call abort if (ubound (ptr, 2) .ne. 71) call abort end subroutine test end program main