aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/contained_3.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/contained_3.f90')
-rw-r--r--gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/contained_3.f9022
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/contained_3.f90 b/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/contained_3.f90
new file mode 100644
index 000000000..d0de1f449
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gfortran.fortran-torture/execute/contained_3.f90
@@ -0,0 +1,22 @@
+! Program to test contained functions calling their siblings.
+! This is tricky because we don't find the declaration for the sibling
+! function until after the caller has been parsed.
+program contained_3
+ call test
+contains
+ subroutine test
+ if (sub(3) .ne. 6) call abort
+ end subroutine
+ integer function sub(i)
+ integer i
+ if (i .gt. 1) then
+ sub = sub2(i) * i
+ else
+ sub = 1
+ end if
+ end function
+ integer function sub2(i)
+ integer i
+ sub2 = sub(i - 1)
+ end function
+end program