Hi to all, and *happy new year*.

AFAIK neither -NaN nor +NaN have sense (how to put a sign at a 'not a
number' ????).

So, d=-d is a non-sense too.

For instance, in my own language NaN have no sign, but on the other hand
I use -Inf and +Inf :

? (/ -1 0)
-Inf.
? (/ 1 0)
+Inf.
? (* 0 (/ -1 0))
NaN


It seems to me that using a sign bit on NaN is a design error.....

Regards to all, and best wishes.

*ian*

Le 05/01/2021 à 10:27, Vincent Lefevre a écrit :
> On 2021-01-04 04:59:28 +0100, Michael Matz wrote:
>> Hello,
>>
>> On Mon, 4 Jan 2021, Vincent Lefevre wrote:
>>
>>>> -----------------------------
>>>> #include <stdio.h>
>>>> #include <math.h>
>>>> #include <stdlib.h>
>>>>
>>>> int main(int argc, char **argv)
>>>> {
>>>>    double d = strtod("-nan", NULL);
>>>>    d = -d;
>>>>    printf("%g, signbit(d) = %d\n", d, signbit(d));
>>>>    return 0;
>>>> }
>>>> -----------------------------
>>>>
>>>> Results:
>>>>
>>>>    $ gcc foo.c -o foo && ./foo
>>>>    -nan, signbit(d) = 1
>>>>
>>>>    $ tcc foo.c -o foo2 && ./foo2
>>>>    nan, signbit(d) = 0
>>>>
>>>> I get the same results as gcc with clang and pcc. tcc is the outlier.
>>> AFAIK, the status of the sign bit of a NaN is unspecified, except
>>> for some particular functions, but not strtod. So I don't see a
>>> bug in tcc.
>>>
>>> Note: for GCC, there's an inconsistency between your testcase
>>> and the result.
>> Yeah, I think that's merely a typo in Arnolds email.  The inconsistency is
>> there, applying unary '-' to a NaN doesn't change the sign of it in TCC.
> But my point is that with the above testcase, you cannot know whether
> the difference between gcc and tcc comes from strtod (which would be
> valid, as strtod doesn't specify the sign or NaN) or the "d = -d;"
> (which would be invalid). A printf should have been added between
> the strtod and the "d = -d;" to be sure.
>
-- 
-- sibian0...@gmail.com
-- Développeur compulsif
_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to