http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25071
--- Comment #11 from Joost VandeVondele <Joost.VandeVondele at pci dot uzh.ch> 2011-01-27 13:22:49 UTC --- I actually vaguely recall why this should be a warning, and not be checked for at runtime. This is for legacy codes using real :: a(1) instead of real :: a(*). Something like SUBROUTINE S1(a) INTEGER :: a(10) a(10)=0 END SUBROUTINE SUBROUTINE S2(a) INTEGER :: a(1) CALL S1(a) END SUBROUTINE INTEGER :: a(10) CALL S2(a) END 'works just fine'...