This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

ICE breaks glibc compilation on PPC


Hi,

the appended testcase breaks glibc compilation on Linux/PPC.

Franz.



[fsirl@enzo:/cvsx/bugs/glibcmath]$ gcc -O1 fgetexcptflg.i
fgetexcptflg.i: In function `__fegetexceptflag':
fgetexcptflg.i:17: impossible register constraint in `asm'
fgetexcptflg.i:17: impossible register constraint in `asm'
fgetexcptflg.i:17: impossible register constraint in `asm'
fgetexcptflg.i:24: Unrecognizable insn:
(insn 20 16 47 (set (reg:SI 9 r9)
        (asm_operands/v:DF ("mffs %0") ("=f") 0[ ]
            [ ]  ("fgetexcptflg.i") 17)) -1 (nil)
    (expr_list:REG_EQUIV (mem:SI (reg/v:SI 3 r3) 0)
        (nil)))
fgetexcptflg.i:24: Internal compiler error in reload_cse_simplify_operands, 
at reload1.c:8098
   Please submit a full bug report.
   See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.      


typedef unsigned int fexcept_t;
 
typedef double fenv_t;
 
typedef union
{
  fenv_t fenv;
  unsigned int l[2];
} fenv_union_t;
 
int
__fegetexceptflag (fexcept_t *flagp, int excepts)
{
  fenv_union_t u;
 
 
  u.fenv = ({ fenv_t env; asm volatile ("mffs %0" : "=f" (env)); env; });
 
 
  *flagp = u.l[1];
 
 
  return 0;
}

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]