Comment 2 for bug 903178

Michael Hope (michaelh1) wrote :

Thank you for the bug report. I've confirmed this with gcc-linaro-4.6-2011.12 on ARM:

michaelh@ursa3:~/linaro/bugs$ /tools/toolchains/arch/armv7l/gcc-linaro-4.6-2011.12-armv7l-natty-cbuild21
2-tcpanda03-cortexa9r1/bin/gcc -c -g -O2 TextDiagnosticPrinter2.ii
TextDiagnosticPrinter2.ii: In member function 'void clang::TextDiagnosticPrinter::EmitCaretDiagnostic(clang::SourceLocation, clang::CharSourceRange*, unsigned int, const clang::SourceManager&, const clang::FixItHint*, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int)':
TextDiagnosticPrinter2.ii:29848:1: error: unable to find a register to spill in class 'LO_REGS'
TextDiagnosticPrinter2.ii:29848:1: error: this is the insn:
(insn 137 150 138 3 (parallel [
            (set (reg/v:SI 208 [ Suppressed ])
                (and:SI (ltu:SI (reg/v:SI 1356 [ OnMacroInst ])
                        (reg/v:SI 1358 [ MacroSkipEnd ]))
                    (geu:SI (reg/v:SI 1356 [ OnMacroInst ])
                        (reg/v:SI 1357 [ MacroSkipStart ]))))
            (clobber (reg:CC 24 cc))
        ]) TextDiagnosticPrinter2.ii:29667 282 {*and_scc_scc_nodom}
     (expr_list:REG_UNUSED (reg:CC 24 cc)
TextDiagnosticPrinter2.ii:29848: confused by earlier errors, bailing out

The work-around is to compile at -O1. The fault does not exist in gcc-4.5.3, gcc-4.6.2, or gcc-4.7~svn182152. The fault was introduced in the 2011.09 release.

I've set it to medium priority as it is a ftbfs and a work-around exists.