aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2012-10-31 18:22:26 +0100
committerTobias Burnus <burnus@gcc.gnu.org>2012-10-31 18:22:26 +0100
commit2d98d2b4f904f4d9bb70f0619bc1a3d3e1aa9e4e (patch)
treebebff502f86f48ad22204387b68b03e6ef74f721 /gcc
parent3b1de8eba72e60a311bb5b66a705f3c31065cef2 (diff)
downloadgcc-2d98d2b4f904f4d9bb70f0619bc1a3d3e1aa9e4e.zip
gcc-2d98d2b4f904f4d9bb70f0619bc1a3d3e1aa9e4e.tar.gz
gcc-2d98d2b4f904f4d9bb70f0619bc1a3d3e1aa9e4e.tar.bz2
re PR fortran/55134 (associate construct and assumed size array)
2012-10-31 Tobias Burnus <burnus@net-b.de> PR fortran/55134 * trans-array.c (gfc_conv_array_parameter): Regard AS_DEFERRED * as array with descriptor. 2012-10-31 Tobias Burnus <burnus@net-b.de> PR fortran/55134 * gfortran.dg/associate_11.f90: New. From-SVN: r193041
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/trans-array.c1
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/associate_11.f9025
4 files changed, 37 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 08cac6c..b503f3a 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2012-10-31 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/55134
+ * trans-array.c (gfc_conv_array_parameter): Regard AS_DEFERRED as
+ array with descriptor.
+
2012-10-28 Tobias Burnus <burnus@net-b.de>
PR fortran/54958
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c
index 3e684ee..26f0523 100644
--- a/gcc/fortran/trans-array.c
+++ b/gcc/fortran/trans-array.c
@@ -7012,6 +7012,7 @@ gfc_conv_array_parameter (gfc_se * se, gfc_expr * expr, bool g77,
if (!sym->attr.pointer
&& sym->as
&& sym->as->type != AS_ASSUMED_SHAPE
+ && sym->as->type != AS_DEFERRED
&& sym->as->type != AS_ASSUMED_RANK
&& !sym->attr.allocatable)
{
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 10f98bc..7e223e8 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2012-10-31 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/55134
+ * gfortran.dg/associate_11.f90: New.
+
2012-10-31 Dodji Seketeli <dodji@redhat.com>
PR c++/54955
diff --git a/gcc/testsuite/gfortran.dg/associate_11.f90 b/gcc/testsuite/gfortran.dg/associate_11.f90
new file mode 100644
index 0000000..182c80b
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/associate_11.f90
@@ -0,0 +1,25 @@
+! { dg-do run }
+! { dg-options "-fdump-tree-original" }
+!
+! PR fortran/55134
+!
+! Contributed by Valery Weber
+!
+program bug
+ implicit none
+ integer,dimension(1)::i
+ i(:)=1
+ associate(a =>i)
+ call foo(a)
+ end associate
+! write(*,*) i
+ if (i(1) /= 2) call abort
+contains
+ subroutine foo(v)
+ integer, dimension(*) :: v
+ v(1)=2
+ end subroutine foo
+end program bug
+
+! { dg-final { scan-tree-dump-times "foo ..integer.kind=4..0:. . restrict. a.data.;" 1 "original" } }
+! { dg-final { cleanup-tree-dump "original" } }