Current mainline gfortran rejects the code below: module general_time implicit none
type gnsec integer :: int end type gnsec interface operator(+) module procedure & gn_addsec_int_post, gn_addsec_int_pre end interface contains function gn_addsec_int_pre(interval, sec) result(isec) integer, intent(in) :: interval type(gnsec), intent(in) :: sec type(gnsec) :: isec isec = gn_addsec_int_post(sec, interval) end function gn_addsec_int_pre function gn_addsec_int_post(sec, interval) result(seci) type(gnsec), intent(in) :: sec integer, intent(in) :: interval type(gnsec) :: seci seci%int = sec%int + interval end function gn_addsec_int_post end module general_time [EMAIL PROTECTED]:~/tmp> gfortran -v -c bug2.f90 Using built-in specs. Target: x86_64-unknown-linux-gnu Configured with: /home/martin/software/gcc/configure --with-gmp=/home/martin/software/mygmp --with-mpfr=/home/martin/software/mympfr --prefix=/home/martin/software/ugcc --enable-languages=c++,fortran --enable-checking=release Thread model: posix gcc version 4.2.0 20060121 (experimental) /home/martin/software/ugcc/libexec/gcc/x86_64-unknown-linux-gnu/4.2.0/f951 bug2.f90 -quiet -dumpbase bug2.f90 -mtune=generic -auxbase bug2 -version -o /tmp/ccpO6EFZ.s GNU F95 version 4.2.0 20060121 (experimental) (x86_64-unknown-linux-gnu) compiled by GNU C version 4.2.0 20060121 (experimental). GGC heuristics: --param ggc-min-expand=98 --param ggc-min-heapsize=128005 In file bug2.f90:23 function gn_addsec_int_post(sec, interval) result(seci) 1 In file bug2.f90:10 gn_addsec_int_post, gn_addsec_int_pre 2 Error: Procedure 'gn_addsec_int_post' at (1) is already defined at (2) This code was compiled without problems by gfortran a few days ago. -- Summary: [gfortran, 4.2.0 regression] overloaded function is rejected Product: gcc Version: 4.2.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: x86_64-unknown-linux-gnu GCC host triplet: x86_64-unknown-linux-gnu GCC target triplet: x86_64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25901