https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109209
Bug ID: 109209 Summary: [13.0 regression] erroneous error on assignment of alloctables Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: juergen.reuter at desy dot de Target Milestone: --- Some commit between last week and now, so between March 12 and March 19, has created a regression, so gfortran throws a (presumably wrong) error message: resonances_sub.f90:816:4: 816 | history_new(1:s) = res_set%history(1:s) | 1 Error: Component to the right of a part reference with nonzero rank must not have the ALLOCATABLE attribute at (1) resonances_sub.f90:816:23: 816 | history_new(1:s) = res_set%history(1:s) | 1 Error: Component to the right of a part reference with nonzero rank must not have the ALLOCATABLE attribute at (1) This is a first part of the code below, I will hopefully provide a full reproducer later one. 810 module subroutine resonance_history_set_expand (res_set) 811 class(resonance_history_set_t), intent(inout) :: res_set 812 type(resonance_history_t), dimension(:), allocatable :: history_new 813 integer :: s 814 s = size (res_set%history) 815 allocate (history_new (2 * s)) 816 history_new(1:s) = res_set%history(1:s) 817 call move_alloc (history_new, res_set%history) 818 end subroutine resonance_history_set_expand 58 type :: resonance_info_t 59 type(flavor_t) :: flavor 60 type(resonance_contributors_t) :: contributors 61 contains 62 procedure :: copy => resonance_info_copy 63 procedure :: write => resonance_info_write 64 procedure, private :: resonance_info_init_pdg 65 procedure, private :: resonance_info_init_flv 66 generic :: init => resonance_info_init_pdg, resonance_info_init_flv 67 procedure, private :: resonance_info_equal 68 generic :: operator(==) => resonance_info_equal 69 procedure :: mapping => resonance_info_mapping 70 procedure, private :: get_n_contributors => resonance_info_get_n_contributors 71 procedure, private :: contains => resonance_info_contains 72 procedure :: evaluate_distance => resonance_info_evaluate_distance 73 procedure :: evaluate_gaussian => resonance_info_evaluate_gaussian 74 procedure :: is_on_shell => resonance_info_is_on_shell 75 procedure :: as_omega_string => resonance_info_as_omega_string 76 end type resonance_info_t 77 78 type :: resonance_history_t 79 type(resonance_info_t), dimension(:), allocatable :: resonances 80 integer :: n_resonances = 0 81 contains 82 procedure :: clear => resonance_history_clear 83 procedure :: copy => resonance_history_copy 84 procedure :: write => resonance_history_write 85 procedure, private :: resonance_history_assign 86 generic :: assignment(=) => resonance_history_assign 87 procedure, private :: resonance_history_equal 88 generic :: operator(==) => resonance_history_equal 89 procedure, private :: resonance_history_contains 90 generic :: operator(.contains.) => resonance_history_contains 91 procedure :: add_resonance => resonance_history_add_resonance 92 procedure :: remove_resonance => resonance_history_remove_resonance 93 procedure :: add_offset => resonance_history_add_offset 94 procedure :: contains_leg => resonance_history_contains_leg 95 procedure :: mapping => resonance_history_mapping 96 procedure :: only_has_n_contributors => & 97 resonance_history_only_has_n_contributors 98 procedure :: has_flavor => resonance_history_has_flavor 99 procedure :: evaluate_distances => resonance_history_evaluate_distances 100 procedure :: evaluate_gaussian => resonance_history_evaluate_gaussian 101 procedure :: is_on_shell => resonance_history_is_on_shell 102 procedure :: as_omega_string => resonance_history_as_omega_string 103 procedure :: to_tree => resonance_history_to_tree 104 end type resonance_history_t 129 type :: resonance_history_set_t 130 private 131 logical :: complete = .false. 132 integer :: n_filter = 0 133 type(resonance_history_t), dimension(:), allocatable :: history 134 type(index_array_t), dimension(:), allocatable :: contains_this 135 type(resonance_tree_t), dimension(:), allocatable :: tree 136 integer :: last = 0 137 contains 138 procedure :: write => resonance_history_set_write 139 procedure :: init => resonance_history_set_init 140 procedure :: enter => resonance_history_set_enter 141 procedure :: freeze => resonance_history_set_freeze 142 procedure :: determine_on_shell_histories & 143 => resonance_history_set_determine_on_shell_histories 144 procedure :: evaluate_gaussian => resonance_history_set_evaluate_gaussian 145 procedure :: get_n_history => resonance_history_set_get_n_history 146 procedure :: get_history => resonance_history_set_get_history 147 procedure :: to_array => resonance_history_set_to_array 148 procedure :: get_tree => resonance_history_set_get_tree 149 procedure, private :: expand => resonance_history_set_expand 150 end type resonance_history_set_t