Using gcc version 4.3.0 20070201 and gcc version 4.3.0 20070130 on i386-pc-linux-gnu (AMD Athlon(tm) XP 2800+) with the following options causes an ICE:
$ gfortran-4.3 -O2 -ftree-vectorize -march=athlon-xp test.f test.f: In function 'cblank_cvb': test.f:6: internal compiler error: in immed_double_const, at emit-rtl.c:468 gcc version 4.1.1 20060724 (prerelease) (4.1.1-3mdk) with gfortran-4.1.1 -O2 -ftree-vectorize -march=athlon-xp test.f gives no ICE. On AMD Athlon(tm) 64 X2 Dual Core Processor 4800+ with today's 4.3 build (gcc-Version 4.3.0 20070131 (experimental), x86_64-unknown-linux-gnu) and gfortran -O3 -ftree-vectorize -march=athlon-xp -m32 xxx.f90 it does not give an ICE either. Test case: ------------------------------------------ subroutine cblank_cvb(a,ndim) character*(*) a character*1 blank data blank/' '/ do 100 i=1,ndim 100 a(i:i)=blank end ------------------------------------------ Backtrace: Breakpoint 1, fancy_abort (file=0x84af1dc "/home/fxcoudert/gfortran_nightbuild/trunk/gcc/emit-rtl.c", line=468, function=0x84af1c9 "immed_double_const") at /home/fxcoudert/gfortran_nightbuild/trunk/gcc/diagnostic.c:641 641 /home/fxcoudert/gfortran_nightbuild/trunk/gcc/diagnostic.c: No such file or directory. in /home/fxcoudert/gfortran_nightbuild/trunk/gcc/diagnostic.c (gdb) bt #0 fancy_abort (file=0x84af1dc "/home/fxcoudert/gfortran_nightbuild/trunk/gcc/emit-rtl.c", line=468, function=0x84af1c9 "immed_double_const") at /home/fxcoudert/gfortran_nightbuild/trunk/gcc/diagnostic.c:641 #1 0x0811089f in immed_double_const (i0=32, i1=0, mode=TImode) at /home/fxcoudert/gfortran_nightbuild/trunk/gcc/emit-rtl.c:468 #2 0x000001d4 in ?? () #3 0x084af1c9 in __FUNCTION__.27361 () #4 0x00000080 in ?? () #5 0x00000000 in ?? () -- Summary: [Regression 4.3] ICE in immed_double_const, at emit- rtl.c:468 Product: gcc Version: 4.3.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: burnus at gcc dot gnu dot org GCC target triplet: i386-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30667