diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/host_dummy_index_1.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/host_dummy_index_1.f90 | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/host_dummy_index_1.f90 b/gcc/testsuite/gfortran.dg/host_dummy_index_1.f90 new file mode 100644 index 000000000..62080f940 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/host_dummy_index_1.f90 @@ -0,0 +1,36 @@ +! { dg-do run } +! Tests the fix for PR23446. Based on PR example. +! Contributed by Paul Thomas <pault@gcc.gnu.org> +! +! Tests furthermore the fix for PR fortran/29916. +! Test contributed by Marco Restelli <mrestelli@gmail.com> +! +PROGRAM TST + INTEGER IMAX + INTEGER :: A(4) = 1 + IMAX=2 + + CALL S(A) + CALL T(A) + CALL U(A) + if ( ALL(A.ne.(/2,2,3,4/))) CALL ABORT () + if ( ALL(F().ne.(/2.0,2.0/))) CALL ABORT() + +CONTAINS + SUBROUTINE S(A) + INTEGER A(IMAX) + a = 2 + END SUBROUTINE S + SUBROUTINE T(A) + INTEGER A(3:IMAX+4) + A(5:IMAX+4) = 3 + END SUBROUTINE T + SUBROUTINE U(A) + INTEGER A(2,IMAX) + A(2,2) = 4 + END SUBROUTINE U + FUNCTION F() + real :: F(IMAX) + F = 2.0 + END FUNCTION F +ENDPROGRAM TST |