-
- Downloads
re PR fortran/49755 (ALLOCATE with STAT= produces invalid code for already allocated vars)
2011-07-26 Daniel Carrera <dcarrera@gmail.com> PR fortran/49755 * trans.c (gfc_allocate_using_malloc): Change function signature. Return nothing. New parameter "pointer". Eliminate temorary variables. (gfc_allocate_using_lib): Ditto. (gfc_allocate_allocatable): Ditto. Update call to gfc_allocate_using_lib and gfc_allocate_using_malloc. Do not free and then reallocate a variable that is already allocated. (gfc_likely): New function. Basedon gfc_unlikely. * trans-array.c (gfc_array_init_size): New parameter "descriptor_block". Instructions to modify the array descriptor are stored in this block while other instructions continue to be stored in "pblock". (gfc_array_allocate): Update call to gfc_array_init_size. Move the descriptor_block so that the array descriptor is only updated if the array was allocated successfully. Update calls to gfc_allocate_allocatable and gfc_allocate_using_malloc. * trans.h (gfc_allocate_allocatable): Change function signature. Function now returns void. (gfc_allocate_using_lib): Ditto, and new function parameter. (gfc_allocate_using_malloc): Ditto. * trans-openmp.c (gfc_omp_clause_default_ctor, gfc_omp_clause_copy_ctor,gfc_trans_omp_array_reduction): Replace a call to gfc_allocate_allocatable with gfc_allocate_using_malloc. * trans-stmt.c (gfc_trans_allocate): Update function calls for gfc_allocate_allocatable and gfc_allocate_using_malloc. 2011-07-26 Daniel Carrera <dcarrera@gmail.com> 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. From-SVN: r176822
Showing
- gcc/fortran/ChangeLog 27 additions, 0 deletionsgcc/fortran/ChangeLog
- gcc/fortran/trans-array.c 37 additions, 22 deletionsgcc/fortran/trans-array.c
- gcc/fortran/trans-openmp.c 12 additions, 9 deletionsgcc/fortran/trans-openmp.c
- gcc/fortran/trans-stmt.c 4 additions, 9 deletionsgcc/fortran/trans-stmt.c
- gcc/fortran/trans.c 50 additions, 63 deletionsgcc/fortran/trans.c
- gcc/fortran/trans.h 5 additions, 4 deletionsgcc/fortran/trans.h
- gcc/testsuite/ChangeLog 7 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/gfortran.dg/multiple_allocation_1.f90 5 additions, 2 deletionsgcc/testsuite/gfortran.dg/multiple_allocation_1.f90
- gcc/testsuite/gfortran.dg/multiple_allocation_3.f90 19 additions, 0 deletionsgcc/testsuite/gfortran.dg/multiple_allocation_3.f90
Loading
Please register or sign in to comment