diff options
author | Daniel Franke <dfranke@gcc.gnu.org> | 2007-05-21 18:24:55 -0400 |
---|---|---|
committer | Daniel Franke <dfranke@gcc.gnu.org> | 2007-05-21 18:24:55 -0400 |
commit | 1b35264faba71c070736b4e5ac148b0ea5c910c0 (patch) | |
tree | 9e3752725ea5fa801e046db1fd56d2a18a949134 /gcc/testsuite | |
parent | 244974bd1bb1e486361d7b4ec6fe686239e2e1f1 (diff) | |
download | gcc-1b35264faba71c070736b4e5ac148b0ea5c910c0.zip gcc-1b35264faba71c070736b4e5ac148b0ea5c910c0.tar.gz gcc-1b35264faba71c070736b4e5ac148b0ea5c910c0.tar.bz2 |
re PR fortran/32002 (insufficient conformance check when assigning the result of an elemental function to an array)
gcc/fortran:
2005-05-21 Jerry DeLisle <jvdelisle@verizon.net>
Daniel Franke <franke.daniel@gmail.com>
PR fortran/32002
* resolve.c (resolve_actual_arglist): Resolve actual argument after
being identified as variable.
gcc/testsuite:
2005-05-21 Daniel Franke <franke.daniel@gmail.com>
PR fortran/32002
* gfortran.dg/compliant_elemental_intrinsics_2.f90: New test.
From-SVN: r124924
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/compliant_elemental_intrinsics_2.f90 | 44 |
2 files changed, 49 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6de884b..c08db44 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2005-05-21 Daniel Franke <franke.daniel@gmail.com> + + PR fortran/32002 + * gfortran.dg/compliant_elemental_intrinsics_2.f90: New test. + 2007-05-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> PR fortran/32027 diff --git a/gcc/testsuite/gfortran.dg/compliant_elemental_intrinsics_2.f90 b/gcc/testsuite/gfortran.dg/compliant_elemental_intrinsics_2.f90 new file mode 100644 index 0000000..ab5607f --- /dev/null +++ b/gcc/testsuite/gfortran.dg/compliant_elemental_intrinsics_2.f90 @@ -0,0 +1,44 @@ +! { dg-compile } +! +! Testcases from PR32002. +! +PROGRAM test_pr32002 + + CALL test_1() ! scalar/vector + CALL test_2() ! vector/vector + CALL test_3() ! matrix/vector + CALL test_4() ! matrix/matrix + +CONTAINS + ELEMENTAL FUNCTION f(x) + INTEGER, INTENT(in) :: x + INTEGER :: f + f = x + END FUNCTION + + SUBROUTINE test_1() + INTEGER :: a = 0, b(2) = 0 + a = f(b) ! { dg-error "Incompatible ranks" } + b = f(a) ! ok, set all array elements to f(a) + END SUBROUTINE + + SUBROUTINE test_2() + INTEGER :: a(2) = 0, b(3) = 0 + a = f(b) ! { dg-error "different shape" } + a = f(b(1:2)) ! ok, slice, stride 1 + a = f(b(1:3:2)) ! ok, slice, stride 2 + END SUBROUTINE + + SUBROUTINE test_3() + INTEGER :: a(4) = 0, b(2,2) = 0 + a = f(b) ! { dg-error "Incompatible ranks" } + a = f(RESHAPE(b, (/ 4 /))) ! ok, same shape + END SUBROUTINE + + SUBROUTINE test_4() + INTEGER :: a(2,2) = 0, b(3,3) = 0 + a = f(b) ! { dg-error "different shape" } + a = f(b(1:3, 1:2)) ! { dg-error "different shape" } + a = f(b(1:3:2, 1:3:2)) ! ok, same shape + END SUBROUTINE +END PROGRAM |