http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52835
--- Comment #3 from Arnaud Desitter <arnaud02 at users dot sourceforge.net> 2012-04-02 17:54:06 UTC --- Additionally: >cat xxx.f SUBROUTINE XXX(RES,ALP,REN,NN ) DIMENSION ALP(NN),REN (NN),RES (NN) DO IP = 1,NN REN(IP) = 0.0 ALP(IP) = 0.0 CALL YYY(ALP(IP),REN(IP),RES(IP)) ENDDO END >gfortran470 -c -O3 -o xxx_O3.o xxx.f ; gfortran470 -c -O2 -o xxx_O2.o xxx.f ; >nm xxx*.o xxx_O2.o: 0000000000000000 T xxx_ U yyy_ xxx_O3.o: U memset 0000000000000000 T xxx_ When compiled with -O3, the call to "YYY" is not generated. This is a pretty serious wrong code generation.