diff options
author | Paul Brook <paul@codesourcery.com> | 2004-10-07 00:43:21 +0000 |
---|---|---|
committer | Paul Brook <pbrook@gcc.gnu.org> | 2004-10-07 00:43:21 +0000 |
commit | 2b58638b467a5788cbeb2ddecb8186e50cc655e1 (patch) | |
tree | 510d55097ada56c1bc250ed1cde1c4e9b69eece0 | |
parent | d1d525310beefc660673ca07246a4eb14b342503 (diff) | |
download | gcc-2b58638b467a5788cbeb2ddecb8186e50cc655e1.zip gcc-2b58638b467a5788cbeb2ddecb8186e50cc655e1.tar.gz gcc-2b58638b467a5788cbeb2ddecb8186e50cc655e1.tar.bz2 |
re PR fortran/17678 (USE statement incorrectly initializes allocatable array)
PR fortran/17678
* trans-array.c (gfc_trans_deferred_array): Leave use associated
variables alone.
testsuite/
* gfortran.dg/use_allocated_1.f90: New test.
From-SVN: r88655
-rw-r--r-- | gcc/fortran/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/fortran/trans-array.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/use_allocated_1.f90 | 18 |
4 files changed, 31 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 276e586..60c8dba 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 a6397d3..d36155d 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 498f92d..04ce160 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 0000000..fb51502e --- /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 |