diff options
| author | pbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-10-07 00:43:21 +0000 |
|---|---|---|
| committer | pbrook <pbrook@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-10-07 00:43:21 +0000 |
| commit | 0af923f587d901f674de98b7f93cf7f43ea370ff (patch) | |
| tree | 510d55097ada56c1bc250ed1cde1c4e9b69eece0 | |
| parent | d5bb6ebe5d1a37b42a877cad360e39c4d8f83f45 (diff) | |
| download | ppe42-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/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 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 |

