! PR92482
! { dg-do compile }
!
! TS 29113
! C1255 (R1230) If proc-language-binding-spec is specified for a procedure,
! each dummy argument shall be an interoperable procedure (15.3.7) 
! or a variable that is interoperable (15.3.5, 15.3.6), assumed shape, 
! assumed rank, assumed type, of assumed character length, or has the 
! ALLOCATABLE or POINTER attribute. If proc-language-binding-spec is 
! specified for a function, the function result shall be an interoperable 
! scalar variable.

module m

  interface

    ! dummy is interoperable procedure
    subroutine s1 (x) bind (c)
      use ISO_C_BINDING
      implicit none
      interface
        function x (a, b) bind (c)
          use ISO_C_BINDING
          integer(C_INT) :: a, b
          integer(C_INT) :: x
        end function
      end interface
    end subroutine

    ! dummy is interoperable variable
    subroutine s2 (x) bind (c)
      use ISO_C_BINDING
      implicit none
      integer(C_INT) :: x
    end subroutine

    ! dummy is assumed-shape array variable
    subroutine s3 (x) bind (c)
      use ISO_C_BINDING
      implicit none
      integer(C_INT) :: x(:)
    end subroutine

    ! dummy is an assumed-rank array variable
    subroutine s4 (x) bind (c)
      use ISO_C_BINDING
      implicit none
      integer(C_INT) :: x(..)
    end subroutine

    ! dummy is assumed-type variable
    subroutine s5 (x) bind (c)
      use ISO_C_BINDING
      implicit none
      type(*) :: x
    end subroutine

    ! dummy is assumed length character variable
    subroutine s6 (x) bind (c)  ! { dg-bogus "Sorry" "pr92482" { xfail *-*-* } }
      use ISO_C_BINDING
      implicit none
      character(len=*) :: x
    end subroutine

    ! dummy has allocatable or pointer attribute
    subroutine s7 (x, y) bind (c)
      use ISO_C_BINDING
      implicit none
      integer(C_INT), allocatable :: x
      integer(C_INT), pointer :: y
    end subroutine

    ! function result shall be an interoperable scalar variable
    function f (x) bind (c)
      use ISO_C_BINDING
      implicit none
      integer(C_INT) :: x
      integer(C_INT) :: f
    end function

  end interface
end module

