http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48155
Paul Bone <pbone at csse dot unimelb.edu.au> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |pbone at csse dot | |unimelb.edu.au --- Comment #4 from Paul Bone <pbone at csse dot unimelb.edu.au> 2011-07-22 05:57:44 UTC --- I'm seeing the same problem in gcc 4.4 and 4.6, I did not test 4.5: paul@semillion:~/code/mercury-compiler-rotd-2011-06-23/compiler$ gcc-4.4 -v -c -o /tmp/out.o -O1 ml_backend.ml_closure_gen.i Using built-in specs. Target: i486-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.5-8' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.4 --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-targets=all --with-arch-32=i586 --with-tune=generic --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu Thread model: posix gcc version 4.4.5 (Debian 4.4.5-8) COLLECT_GCC_OPTIONS='-v' '-c' '-o' '/tmp/out.o' '-O1' '-mtune=generic' '-march=i586' /usr/lib/gcc/i486-linux-gnu/4.4.5/cc1 -fpreprocessed ml_backend.ml_closure_gen.i -quiet -dumpbase ml_backend.ml_closure_gen.i -mtune=generic -march=i586 -auxbase-strip /tmp/out.o -O1 -version -o /tmp/ccbABR7o.s GNU C (Debian 4.4.5-8) version 4.4.5 (i486-linux-gnu) compiled by GNU C version 4.4.5, GMP version 4.3.2, MPFR version 3.0.0-p3. GGC heuristics: --param ggc-min-expand=98 --param ggc-min-heapsize=127992 Compiler executable checksum: 0192d925385d4e6642a93c63f245f907 ml_backend.ml_closure_gen.c:32: warning: ‘mercury__ml_backend__ml_closure_gen__ml_gen_maybe_pseudo_type_info_defn_4_0’ used but never defined ml_backend.ml_closure_gen.c: In function ‘ml_backend__ml_closure_gen_module11’: ml_backend.ml_closure_gen.c:230: error: unable to find a register to spill in class ‘DIREG’ ml_backend.ml_closure_gen.c:230: error: this is the insn: (insn 123 122 124 11 ml_backend.ml_closure_gen.c:105 (parallel [ (set (mem:SI (reg/f:SI 136) [0 S4 A32]) (reg/v:SI 80 [ MR_tempr3 ])) (set (reg/v:SI 82 [ MR_tempr1 ]) (plus:SI (reg/f:SI 136) (const_int 4 [0x4]))) ]) 852 {*strsetsi_1} (expr_list:REG_DEAD (reg/f:SI 136) (nil))) ml_backend.ml_closure_gen.c:230: confused by earlier errors, bailing out Preprocessed source stored into /tmp/cccXoZX2.out file, please attach this to your bugreport. I will attach the generated test case.