http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52976
--- Comment #5 from Dominique d'Humieres <dominiq at lps dot ens.fr> 2012-04-13 22:11:24 UTC --- The patch in comment #4 fixes doduc.f90, but not aermod.f90 (the sources are available at http://polyhedron.com/pb05-lin64-f90bench_SBhtml ). A reduced test for aermod is [macbook] lin/test% cat grdurban_red.f90 SUBROUTINE GRDURBAN(URBWSTR, ZIURB, GRIDHT) IMPLICIT NONE INTEGER :: I REAL :: SW2, URBWSTR, ZIURB, GRIDHT(87) SAVE SW2 = 1.6*(GRIDHT(I)/ZIURB)**0.667*URBWSTR**2 END [macbook] lin/test% gfc -c -O3 -ffast-math grdurban_red.f90 grdurban_red.f90: In function 'grdurban': grdurban_red.f90:1:0: error: definition in block 2 follows the use SUBROUTINE GRDURBAN(URBWSTR, ZIURB, GRIDHT) ^ for SSA_NAME: reassocpow.4_1 in statement: D.1875_14 = reassocpow.4_1 * D.1874_13; grdurban_red.f90:1:0: internal compiler error: verify_ssa failed SUBROUTINE GRDURBAN(URBWSTR, ZIURB, GRIDHT) ^ Note that the ICE disappears if I remove the SAVE.