diff options
author | Mikael Morin <mikael@gcc.gnu.org> | 2015-07-17 09:40:29 +0000 |
---|---|---|
committer | Mikael Morin <mikael@gcc.gnu.org> | 2015-07-17 09:40:29 +0000 |
commit | 0e1f8c6a90834987f63f911a86d78e40d5577e80 (patch) | |
tree | 7078210f7a994805cf1f64553e2404f73464f23c /gcc/fortran/ChangeLog | |
parent | a6c51a129328343ba445f1cc663f455c173cdc97 (diff) | |
download | gcc-0e1f8c6a90834987f63f911a86d78e40d5577e80.zip gcc-0e1f8c6a90834987f63f911a86d78e40d5577e80.tar.gz gcc-0e1f8c6a90834987f63f911a86d78e40d5577e80.tar.bz2 |
Fix PR61831: Side-effect variable component deallocation
gcc/fortran/
2015-07-17 Mikael Morin <mikael@gcc.gnu.org>
Dominique d'Humieres <dominiq@lps.ens.fr>
PR fortran/61831
* trans-array.c (gfc_conv_array_parameter): Guard allocatable
component deallocation code generation with descriptorless
calling convention flag.
* trans-expr.c (gfc_conv_expr_reference): Remove allocatable
component deallocation code generation from revision 212329.
(expr_may_alias_variables): New function.
(gfc_conv_procedure_call): New boolean elemental_proc to factor
check for procedure elemental-ness. Rename boolean f to nodesc_arg
and declare it in the outer scope. Use expr_may_alias_variables,
elemental_proc and nodesc_arg to decide whether generate allocatable
component deallocation code.
(gfc_trans_subarray_assign): Set deep copy flag.
gcc/testsuite/
2015-07-17 Mikael Morin <mikael@gcc.gnu.org>
PR fortran/61831
* gfortran.dg/alloc_comp_auto_array_3.f90: Count the number
of generated while loops in the tree dump.
* gfortran.dg/derived_constructor_comps_6.f90: New file.
Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr>
From-SVN: r225926
Diffstat (limited to 'gcc/fortran/ChangeLog')
-rw-r--r-- | gcc/fortran/ChangeLog | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index a3fd6de..af81bd5 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,20 @@ +2015-07-17 Mikael Morin <mikael@gcc.gnu.org> + Dominique d'Humieres <dominiq@lps.ens.fr> + + PR fortran/61831 + * trans-array.c (gfc_conv_array_parameter): Guard allocatable + component deallocation code generation with descriptorless + calling convention flag. + * trans-expr.c (gfc_conv_expr_reference): Remove allocatable + component deallocation code generation from revision 212329. + (expr_may_alias_variables): New function. + (gfc_conv_procedure_call): New boolean elemental_proc to factor + check for procedure elemental-ness. Rename boolean f to nodesc_arg + and declare it in the outer scope. Use expr_may_alias_variables, + elemental_proc and nodesc_arg to decide whether generate allocatable + component deallocation code. + (gfc_trans_subarray_assign): Set deep copy flag. + 2015-07-16 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/66724 |