Internal compiler error when compiling f2c_specifics.F90 function _gfortran_f2c_specific__cos_c8 with optimizations turned on for the thumb multilib directory. The non-thumb build compiles fine. Turning off the -O2 flag compiles fine (not sure if it works). I can reduce the test case removing all other functions from the file:
here is the preprocessed file (only difference between f90 and F90 is the # 1 lines) # 1 "f2c_specifics.F90" # 1 "<built-in>" # 1 "<command-line>" # 1 "f2c_specifics.F90" subroutine _gfortran_f2c_specific__cos_c8 (res, parm); DOUBLE COMPLEX, intent (in) :: parm; DOUBLE COMPLEX, intent (out) :: res; res = cos (parm); end subroutine And the build results Reading specs from /opt/build/arm-none-elf/./gcc/specs Target: arm-elf Configured with: /opt/src/tooltrunk/configure --prefix=/opt/devtools --with-gmp=/opt/devtools --with-mpc=/opt/devtools --with-mpfr=/opt/devtools --with-ppl=/opt/devtools --with-cloog=/opt/devtools --enable-version-specific-runtime-libs --disable-rpath --disable-win32-registry --enable-languages=c,c++,fortran --disable-bootstrap --target=arm-elf Thread model: single gcc version 4.4.2 20090927 (prerelease) (GCC) COLLECT_GCC_OPTIONS='-v' '-save-temps' '-B/opt/build/arm-none-elf/./gcc/' '-nostdinc' '-B/opt/build/arm-none-elf/arm-elf/thumb/newlib/' '-isystem' '/opt/build/arm-none-elf/arm-elf/thumb/newlib/targ-include' '-isystem' '/opt/src/tooltrunk/newlib/libc/include' '-B/opt/build/arm-none-elf/arm-elf/thumb/libgloss/arm' '-L/opt/build/arm-none-elf/arm-elf/thumb/libgloss/libnosys' '-L/opt/src/tooltrunk/libgloss/arm' '-B/opt/devtools/arm-elf/bin/' '-B/opt/devtools/arm-elf/lib/' '-isystem' '/opt/devtools/arm-elf/include' '-isystem' '/opt/devtools/arm-elf/sys-include' '-L/opt/build/arm-none-elf/./ld' '-DHAVE_CONFIG_H' '-I../thumb' '-I/opt/src/tooltrunk/libgfortran' '-I../thumb' '-iquote/opt/src/tooltrunk/libgfortran/io' '-I/opt/src/tooltrunk/libgfortran/../gcc' '-I/opt/src/tooltrunk/libgfortran/../gcc/config' '-I../../.././gcc' '-D_GNU_SOURCE' '-I' '../thumb' '-Wall' '-Werror' '-fno-underscoring' '-fallow-leading-underscore' '-g' '-O2' '-mthumb' '-c' '-o' 'f2c_specifics.o' /opt/build/arm-none-elf/./gcc/f951 f2c_specifics.F90 -cpp f2c_specifics.f90 -quiet -nostdinc -v -I../thumb -I/opt/src/tooltrunk/libgfortran -I../thumb -I/opt/src/tooltrunk/libgfortran/../gcc -I/opt/src/tooltrunk/libgfortran/../gcc/config -I../../.././gcc -I ../thumb -imultilib thumb -iprefix /opt/build/arm-none-elf/gcc/../lib/gcc/arm-elf/4.4.2/ -isystem /opt/build/arm-none-elf/./gcc/include -isystem /opt/build/arm-none-elf/./gcc/include-fixed -D__USES_INITFINI__ -DHAVE_CONFIG_H -D_GNU_SOURCE -isystem /opt/build/arm-none-elf/arm-elf/thumb/newlib/targ-include -isystem /opt/src/tooltrunk/newlib/libc/include -isystem /opt/devtools/arm-elf/include -isystem /opt/devtools/arm-elf/sys-include -iquote/opt/src/tooltrunk/libgfortran/io f2c_specifics.F90 -quiet -dumpbase f2c_specifics.F90 -mthumb -auxbase-strip f2c_specifics.o -g -O2 -Wall -Werror -version -fno-underscoring -fallow-leading-underscore -o f2c_specifics.s ignoring nonexistent directory "/opt/build/arm-none-elf/gcc/../lib/gcc/arm-elf/4.4.2/include" ignoring nonexistent directory "/opt/build/arm-none-elf/gcc/../lib/gcc/arm-elf/4.4.2/include-fixed" ignoring nonexistent directory "/opt/build/arm-none-elf/gcc/../lib/gcc/arm-elf/4.4.2/../../../../arm-elf/sys-include" ignoring nonexistent directory "/opt/build/arm-none-elf/gcc/../lib/gcc/arm-elf/4.4.2/../../../../arm-elf/include" ignoring nonexistent directory "/opt/build/arm-none-elf/gcc/../lib/gcc/../../lib/gcc/arm-elf/4.4.2/include" ignoring nonexistent directory "/opt/build/arm-none-elf/gcc/../lib/gcc/../../lib/gcc/arm-elf/4.4.2/include-fixed" ignoring nonexistent directory "/opt/build/arm-none-elf/gcc/../lib/gcc/../../lib/gcc/arm-elf/4.4.2/../../../../arm-elf/sys-include" ignoring nonexistent directory "/opt/build/arm-none-elf/gcc/../lib/gcc/../../lib/gcc/arm-elf/4.4.2/../../../../arm-elf/include" ignoring nonexistent directory "../thumb" ignoring nonexistent directory "../thumb" ignoring nonexistent directory "../thumb" ignoring nonexistent directory "/opt/devtools/arm-elf/include" ignoring nonexistent directory "/opt/devtools/arm-elf/sys-include" #include "..." search starts here: #include <...> search starts here: /opt/src/tooltrunk/libgfortran /opt/src/tooltrunk/libgfortran/../gcc /opt/src/tooltrunk/libgfortran/../gcc/config ../../.././gcc /opt/build/arm-none-elf/./gcc/include /opt/build/arm-none-elf/./gcc/include-fixed /opt/build/arm-none-elf/arm-elf/thumb/newlib/targ-include /opt/src/tooltrunk/newlib/libc/include /opt/src/tooltrunk/libgfortran/io End of search list. GNU Fortran (GCC) version 4.4.2 20090927 (prerelease) (arm-elf) compiled by GNU C version 4.4.1 20090725 (Red Hat 4.4.1-2), GMP version 4.3.1, MPFR version 2.4.2-dev. GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 f2c_specifics.F90: In function '_gfortran_f2c_specific__cos_c8': f2c_specifics.F90:2: internal compiler error: in find_valid_class, at reload.c:700 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. -- Summary: ICE in libgfortran arm thumb multilib compile Product: gcc Version: 4.4.2 Status: UNCONFIRMED Severity: critical Priority: P3 Component: libfortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dougsemler at gmail dot com GCC build triplet: x86_64-pc-linux-gnu GCC host triplet: x86_64-pc-linux-gnu GCC target triplet: arm-unknown-elf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41482