delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2003/12/21/12:43:23

X-Authentication-Warning: delorie.com: mail set sender to djgpp-workers-bounces using -f
Date: Sun, 21 Dec 2003 19:41:12 +0200
From: "Eli Zaretskii" <eliz AT elta DOT co DOT il>
Sender: halo1 AT zahav DOT net DOT il
To: Richard Dawe <rich AT phekda DOT gotadsl DOT co DOT uk>
Message-Id: <2914-Sun21Dec2003194111+0200-eliz@elta.co.il>
X-Mailer: emacs 21.3.50 (via feedmail 8 I) and Blat ver 1.8.9
CC: djgpp-workers AT delorie DOT com, Kbwms AT aol DOT com
In-reply-to: <3FE5DB66.8000108@phekda.gotadsl.co.uk> (message from Richard
Dawe on Sun, 21 Dec 2003 17:41:58 +0000)
Subject: Re: isnanf et al
References: <14f DOT 2822ab47 DOT 2d15f1a0 AT aol DOT com> <3FE5AF50 DOT 7020603 AT phekda DOT gotadsl DOT co DOT uk> <3405-Sun21Dec2003183453+0200-eliz AT elta DOT co DOT il> <3FE5DB66 DOT 8000108 AT phekda DOT gotadsl DOT co DOT uk>
Reply-To: djgpp-workers AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp-workers AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

> Date: Sun, 21 Dec 2003 17:41:58 +0000
> From: Richard Dawe <rich AT phekda DOT gotadsl DOT co DOT uk>
> >>
> >>That would break the build with gcc 3.3.x (and 3.2.x?). Those changes 
> >>were made, so that DJGPP 2.04 could be built with gcc 3.3.x (and 3.2.x?).
> > 
> > 
> > Can you remind what kind of problems were those?  I think we should
> > look for a solution that fixes them without triggering this new
> > problem.
> 
> They were errors about type-punning breaking strict aliasing (search the 
> gcc info docs for -fstrict-aliasing and you should find a section about 
> it). Using a union is the only valid way of doing type-punning, but it 
> seems that using it was the wrong solution. By using the union I guess 
> you're telling the compiler "I know what I'm doing", like with typecasts.

Sorry, I'm confused: where is that solution using unions?  I'm
looking at ieeefp.h, the header that caused trouble reported by K.B.,
and I still see monstrocities like this:

    #define isnanf(x) (((*(long *)&(x) & 0x7f800000L)==0x7f800000L) && \
		       ((*(long *)&(x) & 0x007fffffL)!=0000000000L))

What am I missing?

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019