http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51578
Bug #: 51578 Summary: [4.3/4.4/4.5/4.6/4.7 Regression] Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Keywords: rejects-valid Severity: normal Priority: P3 Component: fortran AssignedTo: unassig...@gcc.gnu.org ReportedBy: bur...@gcc.gnu.org Reported by Billy Backer at http://gcc.gnu.org/ml/fortran/2011-12/msg00093.html The program uses (sub2): use mod2 ! Imports "mod1" and provides "axx" use mod1, oxx=>axx but using "axx" fails: print*,axx 1 Error: Symbol 'axx' at (1) has no IMPLICIT type It works if one reverts the order (sub1). I could not find anything in the standard which indicates that not both symbols are imported. I wonder whether it is related to: use mod1, oxx=>axx use mod1 in that case "axx" is not imported. (Cf. paragraph 7 of Fortran 2008's "11.2.2 The USE statement and use association"). See also http://j3-fortran.org/pipermail/j3/2011-December/004944.html module mod1 integer :: axx=2 end module mod1 module mod2 use mod1 end module mod2 subroutine sub1 use mod1, oxx=>axx use mod2 implicit none print*,axx?? !line compiles OK for gfortran, fails for Intel end subroutine sub1 subroutine sub2 use mod2 use mod1, oxx=>axx implicit none print*,axx??!line fails to compile for gfortran, OK for Intel end subroutine sub2