Skip to content
Snippets Groups Projects
  • Paul Thomas's avatar
    ff3598bc
    re PR fortran/34640 (ICE when assigning item of a derived-component to a pointer) · ff3598bc
    Paul Thomas authored
    2017-09-10  Paul Thomas  <pault@gcc.gnu.org>
    
    	PR fortran/34640
    	PR fortran/40737
    	PR fortran/55763
    	PR fortran/57019
    	PR fortran/57116
    
    	* expr.c (is_subref_array): Add class pointer array dummies
    	to the list of expressions that return true.
    	* trans-array.c: Add SPAN_FIELD and update indices for
    	subsequent fields.
    	(gfc_conv_descriptor_span, gfc_conv_descriptor_span_get,
    	gfc_conv_descriptor_span_set, is_pointer_array,
    	get_array_span): New functions.
    	(gfc_get_descriptor_offsets_for_info): New function to preserve
    	API for access to descriptor fields for trans-types.c.
    	(gfc_conv_scalarized_array_ref): If the expression is a subref
    	array, make sure that info->descriptor is a descriptor type.
    	Otherwise, if info->descriptor is a pointer array, set 'decl'
    	and fix it if it is a component reference.
    	(build_array_ref): Simplify handling of class array refs by
    	passing the vptr to gfc_build_array_ref rather than generating...
    ff3598bc
    History
    re PR fortran/34640 (ICE when assigning item of a derived-component to a pointer)
    Paul Thomas authored
    2017-09-10  Paul Thomas  <pault@gcc.gnu.org>
    
    	PR fortran/34640
    	PR fortran/40737
    	PR fortran/55763
    	PR fortran/57019
    	PR fortran/57116
    
    	* expr.c (is_subref_array): Add class pointer array dummies
    	to the list of expressions that return true.
    	* trans-array.c: Add SPAN_FIELD and update indices for
    	subsequent fields.
    	(gfc_conv_descriptor_span, gfc_conv_descriptor_span_get,
    	gfc_conv_descriptor_span_set, is_pointer_array,
    	get_array_span): New functions.
    	(gfc_get_descriptor_offsets_for_info): New function to preserve
    	API for access to descriptor fields for trans-types.c.
    	(gfc_conv_scalarized_array_ref): If the expression is a subref
    	array, make sure that info->descriptor is a descriptor type.
    	Otherwise, if info->descriptor is a pointer array, set 'decl'
    	and fix it if it is a component reference.
    	(build_array_ref): Simplify handling of class array refs by
    	passing the vptr to gfc_build_array_ref rather than generating...