[Bug fortran/79230] [7 Regression] [OOP] Run time error: double free or corruption

janus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat Jan 28 14:03:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79230

janus at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |vehre at gcc dot gnu.org

--- Comment #15 from janus at gcc dot gnu.org ---
(In reply to janus from comment #14)
> > r243480:
> > 2016-12-09  Andre Vehreschild  <vehre@gcc.gnu.org>
> > 
> > 	* trans-array.c (gfc_array_deallocate): Remove wrapper.
> > 	(gfc_trans_dealloc_allocated): Same.
> > 	(structure_alloc_comps): Restructure deallocation of (nested)
> > 	allocatable components.  Insert dealloc of sub-component into the block
> > 	guarded by the if != NULL for the component.
> > 	(gfc_trans_deferred_array): Use the almightly deallocate_with_status.
> > 	* trans-array.h: Remove prototypes.
> > 	* trans-expr.c (gfc_conv_procedure_call): Use the almighty deallocate_
> > 	with_status.
> > 	* trans-openmp.c (gfc_walk_alloc_comps): Likewise.
> > 	(gfc_omp_clause_assign_op): Likewise.
> > 	(gfc_omp_clause_dtor): Likewise.
> > 	* trans-stmt.c (gfc_trans_deallocate): Likewise.
> > 	* trans.c (gfc_deallocate_with_status): Allow deallocation of scalar
> > 	and arrays as well as coarrays.
> > 	(gfc_deallocate_scalar_with_status): Get the data member for coarrays
> > 	only when freeing an array with descriptor.  And set correct caf_mode
> > 	when freeing components of coarrays.
> > 	* trans.h: Change prototype of gfc_deallocate_with_status to allow
> > 	adding statements into the block guarded by the if (pointer != 0) and
> > 	supply a coarray handle.
> 
> Unfortunately this patch does not reverse-apply cleanly any more.

... so I quickly went back to the old versions of the repo and found:

r243479 shows no runtime error, r243480 does.


More information about the Gcc-bugs mailing list