aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThomas Koenig <tkoenig@gcc.gnu.org>2020-08-05 20:53:44 +0200
committerThomas Koenig <tkoenig@gcc.gnu.org>2020-08-05 20:54:48 +0200
commitdd30d93f1a3ead7b814c1b179cf7197e4bf1e183 (patch)
treec018c2ac506ab3da9b7be589360d2b27b6f98617 /gcc
parent27eac9ee6137a6b5ae693b54cafa22bdc0cbcd5a (diff)
downloadgcc-dd30d93f1a3ead7b814c1b179cf7197e4bf1e183.zip
gcc-dd30d93f1a3ead7b814c1b179cf7197e4bf1e183.tar.gz
gcc-dd30d93f1a3ead7b814c1b179cf7197e4bf1e183.tar.bz2
Added test case to make sure that legal cases still pass.
gcc/testsuite/ChangeLog: PR fortran/96469 * gfortran.dg/do_check_14.f90: New test.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gfortran.dg/do_check_14.f9056
1 files changed, 56 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/do_check_14.f90 b/gcc/testsuite/gfortran.dg/do_check_14.f90
new file mode 100644
index 0000000..43425f1
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/do_check_14.f90
@@ -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