! Check for valid VOLATILE uses
!
! Contributed by Steven Correll.
!
! PR fortran/30520

! { dg-do compile }
 
  function f() result(fr)
    integer, volatile :: fr
    fr = 5
  end function f 

  module mod13
    implicit none
    integer :: v13
  end module mod13 

  module mod13a
   use mod13
   implicit none
   volatile :: v13
   real :: v14
  contains
   subroutine s13()
     volatile :: v13
     volatile :: v14
   end subroutine s13 
  end module mod13a 

  module mod13b
   use mod13a
   implicit none
   volatile :: v13
  end module mod13b 


  subroutine s14()
    use mod13a
    implicit none
    volatile :: v13
  end subroutine s14 
