------- Comment #6 from pinskia at gcc dot gnu dot org 2009-09-23 16:13 ------- so in floating point world, NaNs are considered unordered that is X == NaN is always false for all values of X including NaNs itself, likewise for >, <, <=, and >=. X != NaN is always true for all values of X including NaNs itself.
So NaNs will cause weird stuff to happen because it is always unordered. Complex numbers are also considered unordered too :) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41448