This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Bootstrap on MSVC broken (real.c ICEs compiling floatdidf()) .. was RE: Bootstrap still broken on ia64
- From: "Donn Terry" <donnte at microsoft dot com>
- To: "Richard Henderson" <rth at redhat dot com>
- Cc: <gcc at gcc dot gnu dot org>
- Date: Wed, 2 Oct 2002 09:59:28 -0700
- Subject: Bootstrap on MSVC broken (real.c ICEs compiling floatdidf()) .. was RE: Bootstrap still broken on ia64
To (Finally!) followup on this.
MSVC treats enum bitfields as signed. The switches real_hash() and
decode_rtx_constant()
(in varasm.c) don't work: struct real_value.class is a 2 bit bitfield,
and represents
the numbers from 0-3 (or -2..1 if signed). The switch statements in
those two functions
build the switch value in a way that sign extension occurs, so it's
getting -1
when presented with rvc_nan (which is 3 to save a look at the source).
I see two ways to fix this: make class one bit wider (so it won't
extend) (and
consequently reduce EXP_BITS by one), or explicitly mask in the switch
statements.
There may be some other convention to deal with this sort of problem as
well, but
I haven't found any reference so far. (Masking seems simpler, but it's
the sort of
thing that can break easily if someone forgets why it's needed, and I'm
not sure
that all the places where it's needed are known.)
Donn
-----Original Message-----
From: Donn Terry [mailto:donnte@microsoft.com]
Sent: Tuesday, September 24, 2002 12:26 PM
To: Richard Henderson; Andreas Schwab
Cc: gcc@gcc.gnu.org
Subject: RE: Bootstrap still broken on ia64
I'm seeing the following (which I will look into, so this is just FYI at
this point) that appears to be related:
/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/gcc/libgcc2.c: In
function `__floatdidf':
/dev/fs/C/home/donn.intel/gnu2.intel/egcs.source/gcc/libgcc2.c:1060:
internal compiler error: in real_hash, at
C:\home\donn.intel\gnu2.intel\egcs.source\gcc\real.c:2337
This occurs when building on Interix with MSVC as the first stage
bootstrap. (Don't know if it repeats when building real.c with gcc.)
(Resync to CVS as of ~11A PDT).
Donn
-----Original Message-----
From: Richard Henderson [mailto:rth@redhat.com]
Sent: Tuesday, September 24, 2002 9:54 AM
To: Andreas Schwab
Cc: gcc@gcc.gnu.org
Subject: Re: Bootstrap still broken on ia64
On Tue, Sep 24, 2002 at 01:31:38PM +0200, Andreas Schwab wrote:
> I'm still getting comparison failures during bootstrap on ia64. Is
> someone working on this, or should I make a GNATS entry?
I was hoping it was the same problem as the other platforms were seeing.
I'll try to look at it today.
r~