I've committed the attached patch to fix testsuite regressions casued by r223258. The interface statements needed to be within the porgram unit. -- Steve
Index: ChangeLog =================================================================== --- ChangeLog (revision 223308) +++ ChangeLog (working copy) @@ -1,3 +1,9 @@ +2015-05-18 Steven G. Kargl <ka...@gcc.gnu.org> + + * gfortran.dg/lto/pr41521_0.f90: Move INTERFACE statement in program + unit. + * gfortran.dg/lto/pr41576_1.f90: Ditto. + 2015-05-12 Andreas Tobler <andre...@gcc.gnu.org> * lib/target-supports.exp (check_effective_target_pie): Add *-*-freebsd* Index: gfortran.dg/lto/pr41521_0.f90 =================================================================== --- gfortran.dg/lto/pr41521_0.f90 (revision 223308) +++ gfortran.dg/lto/pr41521_0.f90 (working copy) @@ -3,9 +3,6 @@ program species integer spk(2) real eval(2) -spk = 2 -call atom(1.1,spk,eval) -end program interface subroutine atom(sol,k,eval) real, intent(in) :: sol @@ -13,4 +10,7 @@ interface real, intent(out) :: eval(2) end subroutine end interface +spk = 2 +call atom(1.1,spk,eval) +end program Index: gfortran.dg/lto/pr41576_1.f90 =================================================================== --- gfortran.dg/lto/pr41576_1.f90 (revision 223308) +++ gfortran.dg/lto/pr41576_1.f90 (working copy) @@ -1,12 +1,11 @@ program test common /bar/ c, d integer(4) :: c, d - call foo - if (c/=1 .or. d/=2) call abort -end program test - interface subroutine foo() end subroutine end interface + call foo + if (c/=1 .or. d/=2) call abort +end program test