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