1! Check for compatibily of actual arguments 2! with dummy arguments marked as volatile 3! 4! Contributed by Steven Correll. 5! 6! PR fortran/30520 7 8! { dg-do compile } 9 10 subroutine s8() 11 implicit none 12 interface 13 subroutine sub8(dummy8) 14 integer, volatile, dimension(3) :: dummy8 15 end subroutine sub8 16 subroutine sub8a(dummy8a) 17 integer, volatile, dimension(:) :: dummy8a 18 end subroutine sub8a 19 end interface 20 integer, dimension(8) :: a 21 call sub8 (a(1:5:2)) ! { dg-error "Array-section actual argument" } 22 call sub8a(a(1:5:2)) 23 end subroutine s8 24 25 subroutine s9(s9dummy) 26 implicit none 27 integer, dimension(:) :: s9dummy 28 interface 29 subroutine sub9(dummy9) 30 integer, volatile, dimension(3) :: dummy9 31 end subroutine sub9 32 subroutine sub9a(dummy9a) 33 integer, volatile, dimension(:) :: dummy9a 34 end subroutine sub9a 35 end interface 36 integer, dimension(9) :: a 37 call sub9 (s9dummy) ! { dg-error "Assumed-shape actual argument" } 38 call sub9a(s9dummy) 39 end subroutine s9 40 41 subroutine s10() 42 implicit none 43 interface 44 subroutine sub10(dummy10) 45 integer, volatile, dimension(3) :: dummy10 46 end subroutine sub10 47 subroutine sub10a(dummy10a) 48 integer, volatile, dimension(:) :: dummy10a 49 end subroutine sub10a 50 subroutine sub10b(dummy10b) 51 integer, volatile, dimension(:), pointer :: dummy10b 52 end subroutine sub10b 53 end interface 54 integer, dimension(:), pointer :: a 55 call sub10 (a) ! { dg-error "Pointer-array actual argument" } 56 call sub10a(a) 57 call sub10b(a) 58 end subroutine s10 59