diff options
author | Erik Edelmann <eedelman@gcc.gnu.org> | 2006-02-12 17:34:15 +0000 |
---|---|---|
committer | Erik Edelmann <eedelman@gcc.gnu.org> | 2006-02-12 17:34:15 +0000 |
commit | 5b0b72518b76d75ad93ac95e6e05e772124085df (patch) | |
tree | 567b946985b670e7b860c5ac6728f1f803b19ebb /gcc/fortran/trans-array.h | |
parent | cac90078ea4d95125ad7e45c610d3859dfc1d164 (diff) | |
download | gcc-5b0b72518b76d75ad93ac95e6e05e772124085df.zip gcc-5b0b72518b76d75ad93ac95e6e05e772124085df.tar.gz gcc-5b0b72518b76d75ad93ac95e6e05e772124085df.tar.bz2 |
re PR fortran/25806 (problems with functions returning array pointers?)
fortran/
2006-02-12 Erik Edelmann <eedelman@gcc.gnu.org>
PR fortran/25806
* trans-array.c (gfc_trans_allocate_array_storage): New argument
dealloc; free the temporary only if dealloc is true.
(gfc_trans_allocate_temp_array): New argument bool dealloc, to be
passed onwards to gfc_trans_allocate_array_storage.
(gfc_trans_array_constructor, gfc_conv_loop_setup): Update call to
gfc_trans_allocate_temp_array.
* trans-array.h (gfc_trans_allocate_temp_array): Update function
prototype.
* trans-expr.c (gfc_conv_function_call): Set new argument 'dealloc'
to gfc_trans_allocate_temp_array to false in case of functions
returning pointers.
(gfc_trans_arrayfunc_assign): Return NULL for functions returning
pointers.
testsuite/
2006-02-12 Erik Edelmann <eedelman@gcc.gnu.org>
PR fortran/25806
* gfortran.dg/ret_pointer_2.f90: New test.
From-SVN: r110893
Diffstat (limited to 'gcc/fortran/trans-array.h')
-rw-r--r-- | gcc/fortran/trans-array.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/fortran/trans-array.h b/gcc/fortran/trans-array.h index ef3d026..2f9fd2d 100644 --- a/gcc/fortran/trans-array.h +++ b/gcc/fortran/trans-array.h @@ -32,7 +32,8 @@ void gfc_set_loop_bounds_from_array_spec (gfc_interface_mapping *, /* Generate code to allocate a temporary array. */ tree gfc_trans_allocate_temp_array (stmtblock_t *, stmtblock_t *, - gfc_loopinfo *, gfc_ss_info *, tree, bool); + gfc_loopinfo *, gfc_ss_info *, tree, bool, + bool); /* Generate function entry code for allocation of compiler allocated array variables. */ |