https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103957
Bug ID: 103957 Summary: ICE passing return value from elemental type bound procedure Product: gcc Version: 9.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: ffadrique at gmail dot com Target Milestone: --- Created attachment 52149 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=52149&action=edit Type used for the type bound procedure The attached code produces an ICE when compiled with 9.3.0 (my reference compiler) Does not occur with 10, 11 and 12. The problem appears on the polymorphic array (elements) but not in the array declared with type and fixed length. If the array is allocatable but not polymorphic the issue does not occur either. Compiler error follows: fran@atlantis:~/tmp/passing_elemental$ gfortran Use.f03 Program.f03 -o Program.bin Program.f03:15:0: 15 | call check_array( elements%get_i() ) | internal compiler error: in gfc_conv_expr_descriptor, at fortran/trans-array.c:7348 Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-9/README.Bugs> for instructions. fran@atlantis:~/tmp/passing_elemental$