Added test case to make sure that legal cases still pass.
authorThomas Koenig <tkoenig@gcc.gnu.org>
Wed, 5 Aug 2020 18:53:44 +0000 (20:53 +0200)
committerThomas Koenig <tkoenig@gcc.gnu.org>
Wed, 5 Aug 2020 18:54:48 +0000 (20:54 +0200)
gcc/testsuite/ChangeLog:

PR fortran/96469
* gfortran.dg/do_check_14.f90: New test.

gcc/testsuite/gfortran.dg/do_check_14.f90 [new file with mode: 0644]

diff --git a/gcc/testsuite/gfortran.dg/do_check_14.f90 b/gcc/testsuite/gfortran.dg/do_check_14.f90
new file mode 100644 (file)
index 0000000..43425f1
--- /dev/null
@@ -0,0 +1,56 @@
+! { dg-do compile }
+! PR fortran/96469 - make sure that all legal variants pass.
+
+module x
+  implicit none
+contains
+  subroutine sub_intent_in(i)
+    integer, intent(in) :: i
+  end subroutine sub_intent_in
+  subroutine sub_intent_unspec(i)
+    integer :: i
+  end subroutine sub_intent_unspec
+  integer function fcn_intent_in(i)
+    integer, intent(in) :: i
+    fcn_intent_in = i + 42
+  end function fcn_intent_in
+  integer function fcn_intent_unspec (i)
+    integer :: i
+    fcn_intent_unspec = i + 42
+  end function fcn_intent_unspec
+end module x
+
+program main
+  use x
+  implicit none
+  integer :: i1, i2, i3, i4
+  integer :: k, l
+  do i1=1,10
+     call sub1
+  end do
+  do i2=1,10
+     call sub2
+  end do
+  do i3 = 1,10
+     k = fcn3()
+  end do
+  do i4=1,10
+     l = fcn4()
+  end do
+contains
+  subroutine sub1
+    call sub_intent_in (i1)
+  end subroutine sub1
+  subroutine sub2
+    integer :: m
+    m = fcn_intent_in (i2)
+    print *,m
+  end subroutine sub2
+  integer function fcn3()
+    call sub_intent_unspec (i3)
+    fcn3 = 42
+  end function fcn3
+  integer function fcn4()
+    fcn4 = fcn_intent_unspec (i4)
+  end function fcn4
+end program main