https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78990
--- Comment #6 from Paul Thomas <pault at gcc dot gnu.org> --- Author: pault Date: Sat Mar 3 16:26:49 2018 New Revision: 258212 URL: https://gcc.gnu.org/viewcvs?rev=258212&root=gcc&view=rev Log: 2018-03-03 Paul Thomas <pa...@gcc.gnu.org> PR fortran/78990 * expr.c (gfc_is_class_array_function): Renamed from 'gfc_is_alloc_class_array_function' and modified to return true for pointers as well as allocatable results. * gfortran.h : Change of name for prototype of above function. * trans-array.c (gfc_add_loop_ss_code): Force finalization of class array results. (build_class_array_ref): Change assertion into a condition. (build_class_array_ref): Set the se class_vptr for class array function results. (gfc_walk_function_expr): Reference gfc_is_class_array_function as above. * trans-decl.c (get_proc_result): Move it up before gfc_trans_deferred_vars. (gfc_trans_deferred_vars): Nullify explicit return class arrays on entry. * trans-expr.c (gfc_conv_class_to_class): Allow conversion of class array functions that have an se class_vptr and use it for the result vptr. (gfc_conv_subref_array_arg): Rename reference to the above function. (gfc_conv_procedure_call): Ditto. Add the se pre block to the loop pre block before the function is evaluated. Do not finalize class pointer results. (arrayfunc_assign_needs_temporary, gfc_trans_assignment_1) More renamed references. * trans-intrinsic.c (gfc_conv_intrinsic_size): Ditto. 2018-03-03 Paul Thomas <pa...@gcc.gnu.org> PR fortran/78990 * gfortran.dg/class_67.f90: New test. Added: branches/gcc-7-branch/gcc/testsuite/gfortran.dg/class_67.f90 Modified: branches/gcc-7-branch/gcc/fortran/ChangeLog branches/gcc-7-branch/gcc/fortran/expr.c branches/gcc-7-branch/gcc/fortran/gfortran.h branches/gcc-7-branch/gcc/fortran/resolve.c branches/gcc-7-branch/gcc/fortran/trans-array.c branches/gcc-7-branch/gcc/fortran/trans-decl.c branches/gcc-7-branch/gcc/fortran/trans-expr.c branches/gcc-7-branch/gcc/fortran/trans-intrinsic.c branches/gcc-7-branch/gcc/testsuite/ChangeLog