[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: M4 1.4.9b testsuite failure

From: Andreas Schwab
Subject: Re: M4 1.4.9b testsuite failure
Date: Thu, 31 May 2007 13:52:38 +0200
User-agent: Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.97 (gnu/linux)

Bruno Haible <address@hidden> writes:

> Andreas Schwab wrote:
>> Bruno Haible <address@hidden> writes:
>> > union u { unsigned int word[4]; long double value; } x =
>> >   { { 0x00000000, 0x40000001, 0x0000ffff, 0x00000000 } };
>> This is not a valid number.  The integer bit _must_ be 1 for a valid NaN
>> or Infinity.
> The Intel IA-64 documentation does not employ the term "valid". According to
> this doc [1][2], the number is a "Pseudo-NaN". So in some sense it's a
> number outside IEEE-754.

It's definitely not a valid encoding.  No valid operation can ever
generate such an encoding.

> While isnanl(X) = 0 may be subject to discussion,
>   finitel(X) = 1  and
>   printf %g X = "-5.94866e+4931"
> are clearly inappropriate.

You are invoking undefined behaviour by useing an invalid encoding.
There is nothing that can be validly said about this invalid encoding,
so every answer is neither right nor wrong, but just undefined.


Andreas Schwab, SuSE Labs, address@hidden
SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

reply via email to

[Prev in Thread] Current Thread [Next in Thread]