2008-11-24 Paul Thomas <pault@gcc.gnu.org>
commit8714fc766e4ee088b6853d11b09bebc386bdf333
authorpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 24 Nov 2008 06:34:16 +0000 (24 06:34 +0000)
committerpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 24 Nov 2008 06:34:16 +0000 (24 06:34 +0000)
tree997d7059d19cf99dc2c6500197c911b74e98bef1
parente2810de9391c8b9d70fe1b40205a495d8898f459
2008-11-24  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/34820
* trans-expr.c (gfc_conv_function_call): Remove all code to
deallocate intent out derived types with allocatable
components.
(gfc_trans_assignment_1): An assignment from a scalar to an
array of derived types with allocatable components, requires
a deep copy to each array element and deallocation of the
converted rhs expression afterwards.
* trans-array.c : Minor whitespace.
* trans-decl.c (init_intent_out_dt): Add code to deallocate
allocatable components of derived types with intent out.
(generate_local_decl): If these types are unused, set them
referenced anyway but allow the uninitialized warning.

PR fortran/34143
* trans-expr.c (gfc_trans_subcomponent_assign): If a conversion
expression has a null data pointer argument, nullify the
allocatable component.

PR fortran/32795
* trans-expr.c (gfc_trans_subcomponent_assign): Only nullify
the data pointer if the source is not a variable.

2008-11-24  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/34820
* gfortran.dg/alloc_comp_constructor_6.f90 : New test.
* gfortran.dg/alloc_comp_basics_1.f90 : Reduce expected refs to
'builtin_free' from 24 to 18.

PR fortran/34143
* gfortran.dg/alloc_comp_constructor_5.f90 : New test.

PR fortran/32795
* gfortran.dg/alloc_comp_constructor_4.f90 : New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142148 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/fortran/ChangeLog
gcc/fortran/trans-array.c
gcc/fortran/trans-decl.c
gcc/fortran/trans-expr.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/alloc_comp_auto_array_2.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/alloc_comp_basics_1.f90
gcc/testsuite/gfortran.dg/alloc_comp_constructor_4.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/alloc_comp_constructor_5.f90 [new file with mode: 0644]
gcc/testsuite/gfortran.dg/alloc_comp_constructor_6.f90 [new file with mode: 0644]