When compiling the testcase below (reduced from the air benchmark of the polyhedron benchmark suite) with "gfortran air-fvsplty2.f90 -ftree-loop-linea r -O1 -ffast-math -c" there is an ICE, backtrace:
Program received signal SIGSEGV, Segmentation fault. remove_referenced_var (var=0xb7cee284) at ../../trunk/gcc/tree-dfa.c:791 791 ggc_free (*loc); (gdb) bt #0 remove_referenced_var (var=0xb7cee284) at ../../trunk/gcc/tree-dfa.c:791 #1 0x083d7449 in remove_unused_locals () at ../../trunk/gcc/tree-ssa-live.c:518 #2 0x0828b5cc in execute_function_todo (data=0x4003) at ../../trunk/gcc/passes.c:865 #3 0x0828b2ac in do_per_function (callback=0x828b400 <execute_function_todo>, data=0x4003) at ../../trunk/gcc/passes.c:757 #4 0x0828b373 in execute_todo (flags=16387) at ../../trunk/gcc/passes.c:935 #5 0x0828b85b in execute_one_pass (pass=0x87dae00) at ../../trunk/gcc/passes.c:1080 #6 0x0828ba07 in execute_pass_list (pass=0x87dae00) at ../../trunk/gcc/passes.c:1110 #7 0x0828ba1a in execute_pass_list (pass=0x87dac00) at ../../trunk/gcc/passes.c:1111 #8 0x0836dc49 in tree_rest_of_compilation (fndecl=0xb7cd1c80) at ../../trunk/gcc/tree-optimize.c:406 #9 0x084db561 in cgraph_expand_function (node=0xb7cd1d80) at ../../trunk/gcc/cgraphunit.c:1016 #10 0x084dd966 in cgraph_optimize () at ../../trunk/gcc/cgraphunit.c:1085 #11 0x080ad55f in gfc_be_parse_file (set_yydebug=0) at ../../trunk/gcc/fortran/f95-lang.c:309 #12 0x0830a683 in toplev_main (argc=16, argv=0xbfa0bec4) at ../../trunk/gcc/toplev.c:1051 #13 0x080f05e2 in main (argc=Cannot access memory at address 0x8 ) at ../../trunk/gcc/main.c:35 Here is the (partially reduced) testcase: SUBROUTINE FVSPLTY2 PARAMETER (NX=150,NY=150) DIMENSION DY(NX,33) , ALY(30) , NPY(30) DIMENSION GP1(NX,NY) , GM1(NX,NY) , GP1y(30,NY) , GM1y(30,NY) DIMENSION GP2(NX,NY) , GM2(NX,NY) , GP2y(30,NY) , GM2y(30,NY) DIMENSION GP3(NX,NY) , GM3(NX,NY) , GP3y(30,NY) , GM3y(30,NY) DIMENSION GP4(NX,NY) , GM4(NX,NY) , GP4y(30,NY) , GM4y(30,NY) DIMENSION GV2(NX,NY) , DYP2(30,NY) , DYM2(30,NY) DIMENSION GV3(NX,NY) , DYP3(30,NY) , DYM3(30,NY) DIMENSION GV4(NX,NY) , DYP4(30,NY) , DYM4(30,NY) COMMON /YD1 / GP1 , GM1 , GP2 , GM2 , GP3 , GM3 , GP4 , GM4 , & & GP1y , GM1y , GP2y , GM2y , GP3y , GM3y , GP4y , & & GM4y , GV2 , GV3 , GV4 , DYP2 , DYM2 , DYP3 , & & DYM3 , DYP4 , DYM4 , DY , NPY , ALY , NDY , MXPx DO jk = 1 , MXPx jmax = 0 jmin = 1 DO i = 1 , NDY jmax = jmax + NPY(i) + 1 ! ! INITIALIZE ! GP1y(i,jk) = 0. GM1y(i,jk) = 0. GP2y(i,jk) = 0. GM2y(i,jk) = 0. GP3y(i,jk) = 0. GM3y(i,jk) = 0. GP4y(i,jk) = 0. GM4y(i,jk) = 0. DYP2(i,jk) = 0. DYM2(i,jk) = 0. DYP3(i,jk) = 0. DYM3(i,jk) = 0. DYP4(i,jk) = 0. DYM4(i,jk) = 0. DO k = 0 , NPY(i) GP1y(i,jk) = GP1y(i,jk) + DY(jmax,k+1)*GP1(jk,ik) GM1y(i,jk) = GM1y(i,jk) + DY(jmin,k+1)*GM1(jk,ik) GP2y(i,jk) = GP2y(i,jk) + DY(jmax,k+1)*GP2(jk,ik) GM2y(i,jk) = GM2y(i,jk) + DY(jmin,k+1)*GM2(jk,ik) GM3y(i,jk) = GM3y(i,jk) + DY(jmin,k+1)*GM3(jk,ik) GP4y(i,jk) = GP4y(i,jk) + DY(jmax,k+1)*GP4(jk,ik) GM4y(i,jk) = GM4y(i,jk) + DY(jmin,k+1)*GM4(jk,ik) ENDDO GP1y(i,jk) = GP1y(i,jk)*ALY(i) GM1y(i,jk) = GM1y(i,jk)*ALY(i) GP2y(i,jk) = GP2y(i,jk)*ALY(i) GM2y(i,jk) = GM2y(i,jk)*ALY(i) GP3y(i,jk) = GP3y(i,jk)*ALY(i) GM3y(i,jk) = GM3y(i,jk)*ALY(i) GP4y(i,jk) = GP4y(i,jk)*ALY(i) GM4y(i,jk) = GM4y(i,jk)*ALY(i) DYP2(i,jk) = DYP2(i,jk)*ALY(i) DYM2(i,jk) = DYM2(i,jk)*ALY(i) DYP3(i,jk) = DYP3(i,jk)*ALY(i) DYM3(i,jk) = DYM3(i,jk)*ALY(i) DYP4(i,jk) = DYP4(i,jk)*ALY(i) DYM4(i,jk) = DYM4(i,jk)*ALY(i) jmin = jmin + NPY(i) + 1 ENDDO ENDDO END Compiler version: gcc version 4.3.0 20070429 (experimental) -- Summary: ICE in tree-dfa.c:791 with -ftree-loop-linear (and -O1 - ffast-math) Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jb at gcc dot gnu dot org GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31762