! { dg-do compile }
! { dg-require-visibility "" }
! This tests that PR32760, in its various manifestations is fixed.
!
! Contributed by Harald Anlauf <anlauf@gmx.de>
!
! This is the original bug - the frontend tried to fix the flavor of
! 'PRINT' too early so that the compile failed on the subroutine 
! declaration.
!
module gfcbug68
  implicit none
  public :: print
contains
  subroutine foo (i)
    integer, intent(in)  :: i
    print *, i
  end subroutine foo
  subroutine print (m)
    integer, intent(in) :: m
  end subroutine print
end module gfcbug68

! This version of the bug appears in comment # 21.
!
module m
  public :: volatile
contains
  subroutine foo
    volatile :: bar
  end subroutine foo
  subroutine volatile
  end subroutine volatile
end module

! This was a problem with the resolution of the STAT parameter in 
! ALLOCATE and DEALLOCATE that was exposed in comment #25.
!
module n
  public :: integer
  private :: istat
contains
  subroutine foo
    integer, allocatable :: s(:), t(:)
    allocate(t(5))
    allocate(s(4), stat=istat)
  end subroutine foo
  subroutine integer()
  end subroutine integer
end module n

! This is the version of the bug in comment #12 of the PR.
!
module gfcbug68a
  implicit none
  public :: write
contains
  function foo (i)
    integer, intent(in)  :: i
    integer foo
    write (*,*) i
    foo = i
  end function foo
  subroutine write (m)
    integer, intent(in) :: m
    print *, m*m*m
  end subroutine write
end module gfcbug68a

program testit
  use gfcbug68a
  integer :: i = 27
  integer :: k
  k = foo(i)
  print *, "in the main:", k
  call write(33)
end program testit
