https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79230
--- Comment #12 from janus at gcc dot gnu.org --- (In reply to Dominique d'Humieres from comment #3) > The problem seems located to the file evaluators_uti.f90 and occurred > between revisions r243430 (2016-12-08, OK) and r243621 (2016-12-13, > segfault). Looking at the ChangeLog, I see two entries in this range that sound like they could be related: r243483: 2016-12-09 Janus Weil <ja...@gcc.gnu.org> PR fortran/61767 * class.c (has_finalizer_component): Fix this function to detect only non-pointer non-allocatable components which have a finalizer. r243480: 2016-12-09 Andre Vehreschild <ve...@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. I need to take a closer look to see which of those two (if any) is the culprit.