aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gfortran.dg/nested_modules_6.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gfortran.dg/nested_modules_6.f90')
-rw-r--r--gcc-4.9/gcc/testsuite/gfortran.dg/nested_modules_6.f9034
1 files changed, 34 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gfortran.dg/nested_modules_6.f90 b/gcc-4.9/gcc/testsuite/gfortran.dg/nested_modules_6.f90
new file mode 100644
index 000000000..b95742270
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gfortran.dg/nested_modules_6.f90
@@ -0,0 +1,34 @@
+! { dg-do compile }
+! Test the patch for PR30084 in which the reference to SIZE
+! in function diag caused a segfault in module.c.
+!
+! Contributed by Troban Trumsko <trumsko@yahoo.com>
+! and reduced by Steve Kargl <kargl@gcc.gnu.org>
+!
+module tao_random_numbers
+ integer, dimension(10) :: s_buffer
+ integer :: s_last = size (s_buffer)
+end module tao_random_numbers
+
+module linalg
+ contains
+ function diag (a) result (d)
+ real, dimension(:,:), intent(in) :: a
+ real, dimension(min(size(a,dim=1),size(a,dim=2))) :: d
+ integer :: i
+ do i = 1, min(size(a, dim = 1), size(a, dim = 2))
+ d(i) = a(i,i)
+ end do
+ end function diag
+end module linalg
+
+module vamp_rest
+ use tao_random_numbers
+ use linalg
+end module vamp_rest
+
+ use vamp_rest
+ real :: x(2, 2) = reshape ([1.,2.,3.,4.], [2,2])
+ print *, s_last
+ print *, diag (x)
+end