This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: [Patch, Fortran] PR 49755 - Multiple allocations.
- From: Tobias Burnus <burnus at net-b dot de>
- To: Daniel Carrera <dcarrera at gmail dot com>
- Cc: gfortran <fortran at gcc dot gnu dot org>, gcc patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 27 Jul 2011 09:58:52 +0200
- Subject: Re: [Patch, Fortran] PR 49755 - Multiple allocations.
- References: <4E2F1F85.7000203@gmail.com>
On 07/26/2011 10:11 PM, Daniel Carrera wrote:
The attached patch fixes PR 49755, allowing GFortran to behave
correctly when faced with multiple allocations:
Ok for trunk?
* trans-array.c (gfc_array_init_size): New parameter "desciptor_block".
Typo: desc(r)iptor_block.
* trans-openmp.c (gfc_omp_clause_default_ctor): Replace a call to
gfc_allocate_allocatable with gfc_allocate_using_malloc.
(gfc_omp_clause_copy_ctor): Ditto.
(gfc_trans_omp_array_reduction): Ditto.
You can combine changes different functions in a single file as in
* trans-openmp.c (gfc_omp_clause_default_ctor,
gfc_omp_clause_copy_ctor, gfc_trans_omp_array_reduction): ...
PR fortran/49755
* gfortran.dg/multiple_allocation_1.f90: Fix test. Allocating an
allocated array should*not* change its size.
* gfortran.dg/multiple_allocation_3.f90: New test. Tests PR 49755.
The "Tests PR 49755." is redundant as one already has "PR fortran/49755".
Your patch does *not* compile for me as you missed to add gfc_likely to
trans.h:
gcc/fortran/trans-array.c:4554:4: error: 'gfc_likely' was not declared
in this scope
Index: gcc/testsuite/gfortran.dg/multiple_allocation_1.f90
===================================================================
--- gcc/testsuite/gfortran.dg/multiple_allocation_1.f90 (revision 176622)
+++ gcc/testsuite/gfortran.dg/multiple_allocation_1.f90 (working copy)
@@ -10,3 +10,3 @@ program alloc_test
allocate(a(4))
- ! This should set the stat code and change the size.
+ ! This should set the stat code but not change the size.
allocate(a(3),stat=i)
For later reference, I would prefer to add a comment stating that the
testcase has been modified to fix PR 49755. It's not really needed but
sometimes convenient to go back to all PRs which were involved in
creating/modifying the test case.
Otherwise, the patch is OK.
Tobias