summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/spec_expr_4.f90
diff options
context:
space:
mode:
authorpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>2006-05-26 05:09:18 +0000
committerpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>2006-05-26 05:09:18 +0000
commit7544787a011311bbc7b5d80ae73505553cb082e2 (patch)
tree77c6438a1e7d93720520b1669b3cd5510e89eeea /gcc/testsuite/gfortran.dg/spec_expr_4.f90
parent67e58aa289c7b891e84722f66f07d617dfd02791 (diff)
downloadgcc-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.f9033
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