diff options
author | pault <pault@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-05-26 05:09:18 +0000 |
---|---|---|
committer | pault <pault@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-05-26 05:09:18 +0000 |
commit | 7544787a011311bbc7b5d80ae73505553cb082e2 (patch) | |
tree | 77c6438a1e7d93720520b1669b3cd5510e89eeea /gcc/testsuite/gfortran.dg/spec_expr_4.f90 | |
parent | 67e58aa289c7b891e84722f66f07d617dfd02791 (diff) | |
download | gcc-7544787a011311bbc7b5d80ae73505553cb082e2.tar.gz |
2006-05-26 Paul Thomas <pault@gcc.gnu.org>
PR fortran/27709
* resolve.c (find_array_spec): Add gfc_symbol, derived, and
use to track repeated component references.
PR fortran/27155
PR fortran/27449
* trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Use
se->string_length throughout and use memcpy to populate the
expression returned to the scalarizer.
(gfc_size_in_bytes): New function.
2006-05-26 Paul Thomas <pault@gcc.gnu.org>
PR fortran/27709
* gfortran.dg/spec_expr_4.f90: New test.
PR fortran/27155
* gfortran.dg/transfer_array_intrinsic_4.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114127 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gfortran.dg/spec_expr_4.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/spec_expr_4.f90 | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/spec_expr_4.f90 b/gcc/testsuite/gfortran.dg/spec_expr_4.f90 new file mode 100644 index 00000000000..7b2d5b6be13 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/spec_expr_4.f90 @@ -0,0 +1,33 @@ +! { dg-do compile } +! Tests the fix for PR27709 in which the specification expression on +! line 22 was not resolved because of the multiple component references. +! +! Contributed by David Ham <David@ham.dropbear.id.au> +! +module elements + implicit none + type element_type + type(ele_numbering_type), pointer :: numbering + end type element_type + type ele_numbering_type + integer, dimension(:,:), pointer :: number2count + end type ele_numbering_type +end module elements +module global_numbering + use elements + implicit none +contains + function element_local_coords(element) result (coords) + type(element_type), intent(in) :: element + real, dimension(size(element%numbering%number2count, 1)) :: coords + coords=0.0 + end function element_local_coords +end module global_numbering + + use global_numbering + type (element_type) :: e + type (ele_numbering_type), target :: ent + allocate (ent%number2count (2,2)) + e%numbering => ent + print *, element_local_coords (e) +end |