On 1/16/2013 5:00 AM, Andrew Haley wrote:
On 01/16/2013 11:54 AM, Mischa Baars wrote:
Here's what Standard C, F.8.3 Relational operators, says:
   x != x → false                   The statement x != x is true if x is a NaN.

   x == x → true              The statement x == x is false if x is a NaN.
And indeed apparently the answer then is '2'. However, I don't think
this is correct. If that means that there is an error in the C
specification, then there probably is an error in the specification.
Right.  So we are agreed that GCC does what the specification of
the C programming language says it must do.  Any argument that you
have must, therefore, be with the technical committee of ISO C, not
with us.

Andrew.

There exist compilers which have options to ignore the possibility of NaN and replace x == x by 1 and x != x by 0 at compile time. gcc is undoubtedly correct in not making such replacements as a default in violation of C specification.

--
Tim Prince

Reply via email to