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

             Bug #: 52800
           Summary: eglibc build broken with internal compiler error in
                    cfgloop .
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: middle-end
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: ram...@gcc.gnu.org
              Host: x86_64-linux-gnu
            Target: arm-linux-gnueabi
             Build: x86_64-linux-gnu


eglibc builds broken with trunk on arm-linux-gnueabi with an internal compiler
error in cfgloop.c  - it has happened in about the last 3 days or so since my
last successful build was on 27th March. 

$> 
/work/cross-build/fsf/arm-none-linux-gnueabi/tools-lowersubregchanges-patched/bin/arm-none-linux-gnueabi-gcc
-c -O2 ./besttry.c  -mfloat-abi=soft -march=armv5te
./besttry.c: In function ‘_IO_new_file_write’:
./besttry.c:36:1: internal compiler error: in get_loop_body, at cfgloop.c:831


__extension__ typedef int __ssize_t;
extern __thread int __libc_errno __attribute__ ((tls_model ("initial-exec")));
struct _IO_FILE {
  int _fileno;
  int _flags2;
};
typedef struct _IO_FILE _IO_FILE;
_IO_new_file_write (f,
      data,
      n)
     _IO_FILE *f;
{
  __ssize_t to_do = n;
  while (to_do>  0)
    {
      __ssize_t count =
 (__builtin_expect (f->_flags2&  2, 0) ?

  ({ unsigned int _sys_result = ({ register int _a1 asm ("r0"), _nr asm ("r7");
        int _a3tmp = (int) ((to_do));
        int _a2tmp = (int) ((data));
        register int _a2 asm ("a2") = _a2tmp;
        register int _a3 asm ("a3") = _a3tmp; _nr = ((0 + 4));
        asm volatile ("swi     0x0     @ syscall " "SYS_ify(write)" : "=r"
(_a1) : "r" (_nr) , "r" (_a1), "r" (_a2), "r" (_a3) : "memory"); _a1;
});
    if (__builtin_expect (((unsigned int) (_sys_result)>= 0xfffff001u), 0))
      { (__libc_errno = ((-(_sys_result))));
        _sys_result = (unsigned int) -1; }
    (int) _sys_result; })
  : __write (f->_fileno, data, to_do));
      if (count<  0)
 {
   break;
        }
      to_do -= count;
    }
}

Reply via email to