! { dg-do compile }
! Tests the fix for the interface bit of PR29975, in which the
! interfaces bl_copy were rejected as ambiguous, even though
! they import different specific interfaces.  In this testcase,
! it is verified that ambiguous specific interfaces are caught.
!
! Contributed by Joost VandeVondele <jv244@cam.ac.uk> and
! simplified by Tobias Burnus <burnus@gcc.gnu.org>
!
SUBROUTINE RECOPY(N, c)
  real, INTENT(IN) :: N
  character(6) :: c
  print *, n
  c = "recopy"
END SUBROUTINE RECOPY

MODULE f77_blas_extra
PUBLIC :: BL_COPY
INTERFACE BL_COPY
  MODULE PROCEDURE SDCOPY
END INTERFACE BL_COPY
CONTAINS
   SUBROUTINE SDCOPY(N, c)
    REAL, INTENT(IN) :: N
    character(6) :: c
    print *, n
    c = "sdcopy"
   END SUBROUTINE SDCOPY
END MODULE f77_blas_extra

MODULE f77_blas_generic
INTERFACE BL_COPY
   SUBROUTINE RECOPY(N, c)
    real, INTENT(IN) :: N
    character(6) :: c
   END SUBROUTINE RECOPY
END INTERFACE BL_COPY
END MODULE f77_blas_generic

subroutine i_am_ok
  USE f77_blas_extra ! { dg-warning "ambiguous interfaces" }
  USE f77_blas_generic
  character(6) :: chr
  chr = ""
  if (chr /= "recopy") STOP 1  
end subroutine i_am_ok

program main
  USE f77_blas_extra   ! { dg-error "Ambiguous interfaces" }
  USE f77_blas_generic ! { dg-error "Ambiguous interfaces" }
  character(6) :: chr
  chr = ""
  call bl_copy(1.0, chr)
  if (chr /= "recopy") STOP 2  
end program main
