Current mainline ICEs on the code below: module coord_v_convert INTEGER, PARAMETER, public :: dp = SELECTED_REAL_KIND(12,200)
contains Subroutine xcc_V_CONVERT(ivector,iepoch,oepoch,isys,osys,ovector) real(dp) :: IVECTOR(1:3) ! Input coordinate vector real(dp) :: IEPOCH ! Input epoch real(dp) :: OEPOCH ! Output epoch real(dp) :: OVECTOR(1:3) ! Output coordinate vector Character(len=*) :: ISYS ! Input system Character(len=*) :: OSYS ! Output system real(dp) :: XVECTOR(1:3) ! Temporary coordinate holder real(dp) :: YVECTOR(1:3) ! Temporary coordinate holder Character(len=20) :: isysu ! Input system, uppercase Character(len=20) :: osysu ! Output system, uppercase if (trim(isysu) /= 'E') then if (trim(isysu) == 'Q' .or. trim(isysu) == 'C') then call xcc_dp_q_to_e(ivector,iepoch,xvector) elseif (trim(isysu) == 'G') then call xcc_dp_g_to_e(ivector,iepoch,xvector) endif endif if (iepoch /= oepoch) then call xcc_dp_precess(xvector,iepoch,oepoch,yvector) else yvector(1:3)=xvector(1:3) endif if (trim(osysu) /= 'E') then if (trim(osysu) == 'Q' .or. trim(osysu) == 'C') then call xcc_dp_e_to_q(yvector,oepoch,ovector) elseif (trim(osysu) == 'G') then call xcc_dp_e_to_g(yvector,oepoch,ovector) endif endif end subroutine xcc_v_convert end module coord_v_convert ~/tmp>gfortran -c -O -v coord_v_convert.F90 Using built-in specs. Target: i686-pc-linux-gnu Configured with: /scratch/martin/gcc/configure --prefix=/afs/mpa/data/martin/ugcc --enable-languages=c++,fortran Thread model: posix gcc version 4.3.0 20070206 (experimental) /afs/mpa/data/martin/ugcc/libexec/gcc/i686-pc-linux-gnu/4.3.0/cc1 -E -lang-fortran -traditional-cpp -D_LANGUAGE_FORTRAN -quiet -v coord_v_convert.F90 -mtune=generic -O -o /tmp/ccjN9yGi.f95 ignoring nonexistent directory "/afs/mpa/data/martin/ugcc/lib/gcc/i686-pc-linux-gnu/4.3.0/../../../../i686-pc-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /usr/local/include /afs/mpa/data/martin/ugcc/include /afs/mpa/data/martin/ugcc/lib/gcc/i686-pc-linux-gnu/4.3.0/include /usr/include End of search list. /afs/mpa/data/martin/ugcc/libexec/gcc/i686-pc-linux-gnu/4.3.0/f951 /tmp/ccjN9yGi.f95 -ffree-form -quiet -dumpbase coord_v_convert.F90 -mtune=generic -auxbase coord_v_convert -O -version -fpreprocessed -fintrinsic-modules-path /afs/mpa/data/martin/ugcc/lib/gcc/i686-pc-linux-gnu/4.3.0/finclude -o /tmp/ccUyuIKr.s GNU F95 version 4.3.0 20070206 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 4.3.0 20070206 (experimental). GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 coord_v_convert.F90: In function 'xcc_v_convert': coord_v_convert.F90:29: internal compiler error: in operand_equal_p, at fold-const.c:2577 The 4.1 and 4.2 branches compile this properly. -- Summary: [fortran, 4.3 regression]: ICE in operand_equal_p() Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: martin at mpa-garching dot mpg dot de GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30715