diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/whole_file_12.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/whole_file_12.f90 | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/whole_file_12.f90 b/gcc/testsuite/gfortran.dg/whole_file_12.f90 new file mode 100644 index 000000000..150ac5f9d --- /dev/null +++ b/gcc/testsuite/gfortran.dg/whole_file_12.f90 @@ -0,0 +1,33 @@ +! { dg-do compile } +! { dg-options "-fwhole-file" } +! +! Tests the fix PR40011 comment 17 in which the explicit interface was +! being ignored and the missing argument was not correctly handled, which +! led to an ICE. +! +! Contributed by Dominique d'Humieres <dominiq@lps.ens.fr +! + Implicit None + call sub(1,2) + call sub(1,2,3) + + contains + + subroutine sub(i,j,k) + Implicit None + Integer, Intent( In ) :: i + Integer, Intent( In ) :: j + Integer, Intent( In ), Optional :: k + intrinsic present + write(*,*)' 3 presence flag ',present(k) + write(*,*)' 1st arg ',i + write(*,*)' 2nd arg ',j + if (present(k)) then + write(*,*)' 3rd arg ',k + else + write(*,*)' 3rd arg is absent' + endif + return + end subroutine + + end |