Paolo Bonzini <pbonz...@redhat.com> writes: > On 24/11/20 10:55, Markus Armbruster wrote: >>> + /* Larger than UINT64_MAX: */ >>> + QLIT_QNUM_DOUBLE(18446744073709552e3), >>> + /* Smaller than INT64_MIN: */ >>> + QLIT_QNUM_DOUBLE(-92233720368547758e2), >> Why "larger than UINT64_MAX" and "smaller than INT64_MIN"? >> > > I guess the point is to test values that are only representable as a > double, so (double)((uint64_t)INT64_MAX+1) wouldn't be very useful for > that: as the expression shows, it would not be a QNUM_VAL_INT but it > would be representable as QNUM_VAL_UINT. > > So these are the cases that matter the most, even though -1, 0 and > INT64_MAX+1 could be nice to have.
qnum_is_equal()'s contract: * Doubles are never considered equal to integers.