summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>2004-10-07 00:43:21 +0000
committerpbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4>2004-10-07 00:43:21 +0000
commit0af923f587d901f674de98b7f93cf7f43ea370ff (patch)
tree510d55097ada56c1bc250ed1cde1c4e9b69eece0
parentd5bb6ebe5d1a37b42a877cad360e39c4d8f83f45 (diff)
downloadppe42-gcc-0af923f587d901f674de98b7f93cf7f43ea370ff.tar.gz
ppe42-gcc-0af923f587d901f674de98b7f93cf7f43ea370ff.zip
PR fortran/17678
* trans-array.c (gfc_trans_deferred_array): Leave use associated variables alone. testsuite/ * gfortran.dg/use_allocated_1.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88655 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/trans-array.c4
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/use_allocated_1.f9018
4 files changed, 31 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 276e5864b8b..60c8dba558a 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,9 @@
+2004-10-07 Paul Brook <paul@codesourcery.com>
+
+ PR fortran/17678
+ * trans-array.c (gfc_trans_deferred_array): Leave use associated
+ variables alone.
+
2004-10-06 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
PR fortran/17568
diff --git a/gcc/fortran/trans-array.c b/gcc/fortran/trans-array.c
index a6397d313fd..d36155dc364 100644
--- a/gcc/fortran/trans-array.c
+++ b/gcc/fortran/trans-array.c
@@ -3999,8 +3999,8 @@ gfc_trans_deferred_array (gfc_symbol * sym, tree body)
&& !INTEGER_CST_P (sym->ts.cl->backend_decl))
gfc_trans_init_string_length (sym->ts.cl, &fnblock);
- /* Parameter variables don't need anything special. */
- if (sym->attr.dummy)
+ /* Parameter and use associated variables don't need anything special. */
+ if (sym->attr.dummy || sym->attr.use_assoc)
{
gfc_add_expr_to_block (&fnblock, body);
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 498f92d51ab..04ce16093e7 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2004-10-07 Paul Brook <paul@codesourcery.com>
+
+ PR fortran/17678
+ * gfortran.dg/use_allocated_1.f90: New test.
+
2004-10-06 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/17849
diff --git a/gcc/testsuite/gfortran.dg/use_allocated_1.f90 b/gcc/testsuite/gfortran.dg/use_allocated_1.f90
new file mode 100644
index 00000000000..fb51502edc2
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/use_allocated_1.f90
@@ -0,0 +1,18 @@
+! { dg-do run }
+! PR17678
+! We were incorrectly setting use-associated variables to unallocated
+! on procedure entry.
+module foo
+ integer, dimension(:), allocatable :: bar
+end module
+
+program main
+ use foo
+ allocate (bar(10))
+ call init
+end program main
+
+subroutine init
+ use foo
+ if (.not.allocated(bar)) call abort
+end subroutine init
OpenPOWER on IntegriCloud