http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47725
--- Comment #20 from Paul Bone <pbone at csse dot unimelb.edu.au> 2011-07-22 06:07:11 UTC --- Created attachment 24808 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=24808 Test case generated by Mercury Compiler This is a test case generated by the Mercury compiler, it has been reduced just enough code to cause the bug to occur. It can be reproduced in gcc 4.4 and 4.6 at an optimization level of -O1 but not -O0. The output of GCC is: 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.
