https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120355
Bug ID: 120355 Summary: Type mismatch for passed external function, if external function appears in the same source file Product: gcc Version: 15.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: jsberg at bnl dot gov Target Milestone: --- Created attachment 61470 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=61470&action=edit Fortran source demonstrating the bug Compile the attached source with gfortran bug-250519a.f90 -o bug-250519a Compiler output is bug-250519a.f90:12:9: 12 | call t(s,i,j) | 1 ...... 29 | function s(x) result(y) Error: Type mismatch at (1) passing global function āsā declared at (2) (UNKNOWN/INTEGER(4)) If I put the external function at the end in a separate source file, the code compiles without error. OS is Arch, but I built gcc from 15.1.0 source to verify that the bug appears in the released version: $ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/home/jsberg/opt/gcc-15.1.0/libexec/gcc/x86_64-pc-linux-gnu/15.1.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-15.1.0/configure --prefix=/home/jsberg/opt/gcc-15.1.0 --disable-multilib Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 15.1.0 (GCC)