blob: 449ca5e558a9c09b7996c1ef22471dbfd4feb75d [file] [log] [blame]
! { dg-do run }
!
! PR fortran/66929
! Check that the specific FIRST symbol is used for the call to FOO,
! so that the J argument is not assumed to be present
module m
interface foo
module procedure first
end interface foo
contains
elemental function bar(j) result(r)
integer, intent(in), optional :: j
integer :: r, s(2)
! We used to have NULL dereference here, in case of a missing J argument
s = foo(j, [3, 7])
r = sum(s)
end function bar
elemental function first(i, j) result(r)
integer, intent(in), optional :: i
integer, intent(in) :: j
integer :: r
if (present(i)) then
r = i
else
r = -5
end if
end function first
end module m
program p
use m
integer :: i
i = bar()
if (i /= -10) STOP 1
end program p