view gcc/testsuite/gfortran.dg/interface_9.f90 @ 127:4c56639505ff

fix function.c and add CbC-example Makefile
author mir3636
date Wed, 11 Apr 2018 18:46:58 +0900
parents 04ced10e8804
children 84e7813d76e9
line wrap: on
line source

! { dg-do compile }
! Test of the patch for PR30096, in which gfortran incorrectly.
! compared local with host associated interfaces.
! 
! Based on contribution by Harald Anlauf <anlauf@gmx.de>
!
module module1
  interface inverse
     module procedure A, B
  end interface
contains
  function A (X) result (Y)
    real                        :: X, Y
    Y = 1.0
  end function A
  function B (X) result (Y)
    integer                     :: X, Y
    Y = 3
  end function B
end module module1

module module2
  interface inverse
     module procedure C
  end interface
contains
  function C (X) result (Y)
    real                        :: X, Y
    Y = 2.0
  end function C
end module module2

program gfcbug48
  use module1, only : inverse
  call sub ()
  if (inverse(1.0_4) /= 1.0_4) call abort ()
  if (inverse(1_4) /= 3_4) call abort ()
contains
  subroutine sub ()
    use module2, only : inverse
    if (inverse(1.0_4) /= 2.0_4) call abort ()
    if (inverse(1_4) /= 3_4) call abort ()
  end subroutine sub
end program gfcbug48