https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78300
--- Comment #6 from Steve Kargl <sgk at troutmask dot apl.washington.edu> --- On Thu, Nov 10, 2016 at 09:06:15PM +0000, dominiq at lps dot ens.fr wrote: > > Confirmed from 4.8 up to trunk (7.0). It would be nice to have a reduced > reproducer. > I certainly agree with! It took a bit to get this. module gfc_base implicit none integer, parameter:: INTD=4 integer, parameter:: INTL=8 integer(INTD), parameter :: GFC_TRUE=1, GFC_FALSE=0 type gfc_cont_elem_t class(*), pointer, private:: value_p=>NULL() integer(INTD), private:: alloc=GFC_FALSE contains procedure, public:: construct=>ContElemConstruct end type gfc_cont_elem_t abstract interface function gfc_copy_i(obj,ierr) result(clone) import:: INTD class(*), pointer:: clone class(*), intent(in):: obj integer(INTD), intent(out), optional:: ierr end function gfc_copy_i end interface private ContElemConstruct contains subroutine ContElemConstruct(this,obj,ierr,assoc_only,copy_constr_func) class(gfc_cont_elem_t), intent(inout):: this class(*), target, intent(in):: obj integer(INTD), intent(out), optional:: ierr logical, intent(in), optional:: assoc_only procedure(gfc_copy_i), optional:: copy_constr_func end subroutine ContElemConstruct end module gfc_base