diff options
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/func_result_3.f90 | 25 |
2 files changed, 30 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 29b1eac..710c62c 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2007-05-27 Tobias Burnus <burnus@net-b.de> + PR fortran/32088 + * gfortran.dg/func_result_3.f90: New. + +2007-05-27 Tobias Burnus <burnus@net-b.de> + PR middle-end/32083 * gfortran.dg/transfer_simplify_3.f90: New. diff --git a/gcc/testsuite/gfortran.dg/func_result_3.f90 b/gcc/testsuite/gfortran.dg/func_result_3.f90 new file mode 100644 index 0000000..d0f8c71 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/func_result_3.f90 @@ -0,0 +1,25 @@ +! { dg-do compile } +! PR fortran/32088 +! +! Test implicitly defined result variables +! +subroutine dummy +contains + function quadric(a,b) result(c) + intent(in) a,b; dimension a(0:3),b(0:3),c(0:9) + c(0)=a(0)*b(0); c(1:3)=a(1:)*b(0)+a(0)*b(1:); c(4:6)=a(1:)*b(1:) + c(7:9)=(/a(1)*b(2)+b(1)*a(2),a(1)*b(3)+b(1)*a(3),a(2)*b(3)+b(2)*a(3)/) + end function +end subroutine dummy + +subroutine dummy2 +implicit none +contains + function quadric(a,b) result(c) ! { dg-error "no IMPLICIT type" } + real :: a, b + intent(in) a,b; dimension a(0:3),b(0:3),c(0:9) + c(0)=a(0)*b(0); c(1:3)=a(1:)*b(0)+a(0)*b(1:); c(4:6)=a(1:)*b(1:) + c(7:9)=(/a(1)*b(2)+b(1)*a(2),a(1)*b(3)+b(1)*a(3),a(2)*b(3)+b(2)*a(3)/) + end function +end subroutine dummy2 +end |