On 07/05/2017 12:00 PM, Max Reitz wrote: >> (uint64_t)(UINT64_MAX + 1) is well-defined - it is 0. >> >> (Adding in unsigned integers is always well-defined - it wraps around on >> mathematical overflow modulo the integer size. You're thinking of >> overflow addition on signed integers, which is indeed undefined) > > It's not. See the standard: > > When a finite value of real floating type is converted to an integer
Ah, you're talking: (uint64_t)(double)(UINT64_MAX + 1), which is indeed undefined. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org
signature.asc
Description: OpenPGP digital signature
