diff options
author | Tobias Burnus <burnus@net-b.de> | 2009-07-27 11:32:20 +0200 |
---|---|---|
committer | Tobias Burnus <burnus@gcc.gnu.org> | 2009-07-27 11:32:20 +0200 |
commit | 758e12afc4e793135a7ac8b51693b62c1bb83939 (patch) | |
tree | e88e7bef2170afcf8543b177e66227cb3215dc95 /gcc/testsuite | |
parent | d08d49885a1a07dd93fa036e37412324e8b710bf (diff) | |
download | gcc-758e12afc4e793135a7ac8b51693b62c1bb83939.zip gcc-758e12afc4e793135a7ac8b51693b62c1bb83939.tar.gz gcc-758e12afc4e793135a7ac8b51693b62c1bb83939.tar.bz2 |
re PR fortran/40851 ([4.3/4.4/4.5] problem with deallocation of pointers)
2009-07-26 Tobias Burnus <burnus@net-b.de>
PR fortran/40851
* resolve.c (resolve_symbol): Do not initialize pointer
* derived-types.
* trans-decl.c (init_intent_out_dt): Ditto.
(generate_local_decl): No need to set attr.referenced for DT pointers.
2009-07-26 Tobias Burnus <burnus@net-b.de>
PR fortran/40851
* gfortran.dg/derived_init_3.f90: New test.
From-SVN: r150108
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gfortran.dg/derived_init_3.f90 | 34 |
2 files changed, 39 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f9bbf62..d136f43 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-07-27 Tobias Burnus <burnus@net-b.de> + + PR fortran/40851 + * gfortran.dg/derived_init_3.f90: New test. + 2009-07-26 Tobias Burnus <burnus@net-b.de> PR fortran/33197 diff --git a/gcc/testsuite/gfortran.dg/derived_init_3.f90 b/gcc/testsuite/gfortran.dg/derived_init_3.f90 new file mode 100644 index 0000000..a1c4a0c --- /dev/null +++ b/gcc/testsuite/gfortran.dg/derived_init_3.f90 @@ -0,0 +1,34 @@ +! { dg-do run } +! +! PR fortran/40851 +! +! Make sure the an INTENT(OUT) dummy is not initialized +! when it is a pointer. +! +! Contributed by Juergen Reuter <juergen.reuter@desy.de>. +! +program main + + type :: string + character,dimension(:),allocatable :: chars + end type string + + type :: string_container + type(string) :: string + end type string_container + + type(string_container), target :: tgt + type(string_container), pointer :: ptr + + ptr => tgt + call set_ptr (ptr) + if (associated(ptr)) call abort() + +contains + + subroutine set_ptr (ptr) + type(string_container), pointer, intent(out) :: ptr + ptr => null () + end subroutine set_ptr + +end program main |