Hi all,
since the number of regressions unfortunately keeps on rising since
quite some time, I think it would be a suitable new-year's resolution
for the whole gfortran team to try and get the number of those buggers
closer to zero again ;)
I even volunteer to make a start with the one mentioned in the subject
line. The fix is actually easy once you know where to look (which was
simplified a lot by Dominique's efforts to identify the blameworthy
commit).
The rather straightforward one-line patch was regtested on
x86_64-unknown-linux-gnu. Ok for trunk and 4.8?
Cheers,
Janus
2013-12-30 Janus Weil <[email protected]>
PR fortran/58998
* resolve.c (resolve_symbol): Check that symbol is not only flavorless
but also untyped.
2013-12-30 Janus Weil <[email protected]>
PR fortran/58998
* gfortran.dg/generic_28.f90: New.
Index: gcc/fortran/resolve.c
===================================================================
--- gcc/fortran/resolve.c (revision 206231)
+++ gcc/fortran/resolve.c (working copy)
@@ -12732,7 +12732,8 @@ resolve_symbol (gfc_symbol *sym)
if (sym->attr.flavor == FL_UNKNOWN
|| (sym->attr.flavor == FL_PROCEDURE && !sym->attr.intrinsic
&& !sym->attr.generic && !sym->attr.external
- && sym->attr.if_source == IFSRC_UNKNOWN))
+ && sym->attr.if_source == IFSRC_UNKNOWN
+ && sym->ts.type == BT_UNKNOWN))
{
/* If we find that a flavorless symbol is an interface in one of the
! { dg-do compile }
!
! PR 58998: [4.8/4.9 Regression] Generic interface problem with gfortran
!
! Contributed by Paul van Delst
interface iargc
procedure iargc_8
end interface
contains
integer(8) function iargc_8()
integer(4) iargc
iargc_8 = iargc()
end function
end