https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99308
Bug ID: 99308 Summary: [OOP] passing array of object as class(TYPE) to procedure leads to incorrect length of array Product: gcc Version: 10.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: 8718033x at gmail dot com Target Milestone: --- Created attachment 50269 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50269&action=edit example code for generating error If both function and subroutine takes polymorphic arrays argument, then the leading array(the first appear array's) length become following array's length. This is my first bug report. so if something wrong with it, please let me know. version: 10.2.0 linux version: arch linux 5.11.1-arch1-1 given option: -Og Example code attached. Extra-description: subroutine err_ver(spcs, fuel) class(Specie) :: spcs(8), fuel(2) ... end subroutine subroutine working_ver(spcs, fuel) type(Specie) :: spcs(8), fuel(2) .. end subroutine For both version, we expect that 1. size(spcs) == 8 2. size(fuel) == 2 are true. But, what I've got was a 8, 8 for the err_ver. if you change the order of spcs and fuel, then you will get 2, 2