| delorie.com/archives/browse.cgi | search |
| 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?
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |