! Check for compatibily of actual arguments ! with dummy arguments marked as volatile ! ! Contributed by Steven Correll. ! ! PR fortran/30520 ! { dg-do compile } subroutine s8() implicit none interface subroutine sub8(dummy8) integer, volatile, dimension(3) :: dummy8 end subroutine sub8 subroutine sub8a(dummy8a) integer, volatile, dimension(:) :: dummy8a end subroutine sub8a end interface integer, dimension(8) :: a call sub8 (a(1:5:2)) ! { dg-error "Array-section actual argument" } call sub8a(a(1:5:2)) end subroutine s8 subroutine s9(s9dummy) implicit none integer, dimension(:) :: s9dummy interface subroutine sub9(dummy9) integer, volatile, dimension(3) :: dummy9 end subroutine sub9 subroutine sub9a(dummy9a) integer, volatile, dimension(:) :: dummy9a end subroutine sub9a end interface integer, dimension(9) :: a call sub9 (s9dummy) ! { dg-error "Assumed-shape actual argument" } call sub9a(s9dummy) end subroutine s9 subroutine s10() implicit none interface subroutine sub10(dummy10) integer, volatile, dimension(3) :: dummy10 end subroutine sub10 subroutine sub10a(dummy10a) integer, volatile, dimension(:) :: dummy10a end subroutine sub10a subroutine sub10b(dummy10b) integer, volatile, dimension(:), pointer :: dummy10b end subroutine sub10b end interface integer, dimension(:), pointer :: a call sub10 (a) ! { dg-error "Pointer-array actual argument" } call sub10a(a) call sub10b(a) end subroutine s10