1! { dg-do compile }
2!
3! Tests the fix PR40011 comment 17 in which the explicit interface was
4! being ignored and the missing argument was not correctly handled, which
5! led to an ICE.
6!
7! Contributed by Dominique d'Humieres  <dominiq@lps.ens.fr
8!
9          Implicit None
10          call sub(1,2)
11          call sub(1,2,3)
12
13          contains
14
15          subroutine sub(i,j,k)
16          Implicit None
17          Integer, Intent( In )           :: i
18          Integer, Intent( In )           :: j
19          Integer, Intent( In ), Optional :: k
20          intrinsic present
21          write(*,*)' 3 presence flag ',present(k)
22          write(*,*)' 1st arg ',i
23          write(*,*)' 2nd arg ',j
24          if (present(k)) then
25            write(*,*)' 3rd arg ',k
26          else
27            write(*,*)' 3rd arg is absent'
28          endif
29          return
30          end subroutine
31
32          end
33