possible bug in egcs-2.93.02 19990117

Mark Davies mdavies@dial.pipex.com
Sat Jan 23 12:49:00 GMT 1999


///////////////////////////////////////////////////////////////////////////

//
// Source File: fragment taken from glibc-2.0.111 sources
//
----------------------------------------------------------------------

__complex__ float
__casinf (__complex__ float x)
{
  __complex__ float res;

        if (__real__ x == 0.0)
        {
                res = x;
        }
//      else if (__isinff (__real__ x) || __isinff (__imag__ x))
        else if (1)
        {
//              __imag__ res = __copysignf ((__extension__ ((union {
unsigned char __c[4]; float __f; } ) { __c: { 0, 0, 0x80, 0x7f }
}).__f) , __imag__ x);
                __imag__ res = __copysignf ((((union { unsigned char
__c[4]; float __f; } ) { __c: { 0, 0, 0x80, 0x7f }  }).__f) , __imag__
x);
        }

return 0;
}

extern __typeof (__casinf)  casinf __attribute__ ((weak, alias
("__casinf")));


///////////////////////////////////////////////////////////////////////////

//
// Compiler

// Reading specs from
/usr/i586-pc-linux-gnulibc2/lib/gcc-lib/i586-pc-linux-gnu/egcs-2.93.02/specs

// gcc version egcs-2.93.02 19990117 (gcc2 ss-980609 experimental)

///////////////////////////////////////////////////////////////////////////

//
// Compile args
// gcc err.c -c -O -o err.o
// Works if you remove the -O flag

///////////////////////////////////////////////////////////////////////////

//
// Output

// killcc.c: In function `__casinf':
// killcc.c:17: warning: implicit declaration of function `__copysignf'
// killcc.c:21: fixed or forbidden register 0 (ax) was spilled for class
AREG.
// killcc.c:21: This may be due to a compiler bug or to impossible asm
// killcc.c:21: statements or clauses.
// killcc.c:21: This is the instruction:
// (insn 17 15 18 (parallel[
//             (set (cc0)
//                 (compare:CCFPEQ (reg:DF 9 %st(1))
//                     (reg:DF 8 %st(0))))
//             (clobber (scratch:HI))
//         ] ) 32 {*cmpsf_cc_1-1} (insn_list 12 (insn_list 15 (nil)))
//     (expr_list:REG_DEAD (reg:DF 9 %st(1))
//         (expr_list:REG_DEAD (reg:DF 8 %st(0))
//             (expr_list:REG_UNUSED (scratch:HI)
//                 (nil)))))
// /usr2/src/egcs-19990117/gcc/toplev.c:1397: Internal compiler error in
function fatal_insn
// Please submit a full bug report to `egcs-bugs@cygnus.com'.
// See <URL: http://egcs.cygnus.com/faq.html#bugreport > for details.



// Regards
// Mark Davies, mdavies@dial.pipex.com






More information about the Gcc-bugs mailing list