Compiling and running the code below with gfortran 4.1 or mainline produces the output foo1 foo2 foo2 instead of the correct output foo1 foo1 foo2
This occurs with 4.1 (release), 4.1.1 and mainline. 4.0.3 (prerelease) produces the correct output. module mod1 implicit none interface foo module procedure foo1, foo2 end interface contains subroutine foo1(bar) real bar print *,"foo1" end subroutine subroutine foo2(bar) real bar(3) print *,"foo2" end subroutine end module mod1 program blah use mod1 implicit none real bar(3) call foo (1e0) call foo (bar(1)) call foo (bar) end program -- Summary: [4.1,4.2 regression] gfortran: incorrect choice of overloaded function Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: martin at mpa-garching dot mpg dot de GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26716