http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46934

           Summary: gcc ICE: error: unrecognizable insn: in extract_insn,
                    at recog.c:2109
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: raj.k...@gmail.com
              Host: x86_64-linux
            Target: arm-none-linux-gnueabi
             Build: x86_64-linux


attached testcase reduced from samba when building for armvte/thumb with -Os
caused a gcc ICE with 4.6.0. Note that it works ok for arm mode and for other
opt levels than -Os

arm-none-linux-gnueabi-gcc-4.6.0 -mthumb -Os cli_reg.i -S

cli_reg.i: In function ‘caller’:
cli_reg.i:20:1: error: unrecognizable insn:
(insn 6 5 7 3 (set (reg:SI 137)
        (plus:SI (reg/v:SI 136 [ reg_type ])
            (const_int 2147483648 [0x80000000]))) cli_reg.i:4 -1
     (nil))
cli_reg.i:20:1: internal compiler error: in extract_insn, at recog.c:2109
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.


testcase

$ cat cli_reg.i
int caller(unsigned int reg_type)
{

 switch (reg_type)
 {
 case 0x80000000:
  return (int)foo();

 case 0x80000003:
  return (int) bar();

 case 0x80000001:
  return (int) baz();

 case 0x80000004:
  return (int) fooz();

 }

}

Reply via email to