On Tue, Dec 8, 2015 at 11:18 AM, Richard Smith <rich...@metafoo.co.uk> wrote:
> On Tue, Dec 8, 2015 at 10:59 AM, Robinson, Paul < > paul_robin...@playstation.sony.com> wrote: > >> Okay, I'll bite: so what *does* UINT128_MAX actually convert to? >> > > $ echo 'unsigned __int128 max = -1; float f = max;' | > ~/clang-8/build/bin/clang -x c++ - -emit-llvm -S -o - -O3 | grep @f > @f = global float undef, align 4 > And at runtime, on some targets, we use this: https://llvm.org/svn/llvm-project/compiler-rt/trunk/lib/builtins/floatuntisf.c ... which gives a NaN in this case. *From:* cfe-commits [mailto:cfe-commits-boun...@lists.llvm.org] *On Behalf >> Of *Richard Smith via cfe-commits >> *Sent:* Tuesday, December 08, 2015 10:52 AM >> *To:* Joerg Sonnenberger; cfe-commits >> *Subject:* Re: r254574 - PR17381: Treat undefined behavior during >> expression evaluation as an unmodeled >> >> >> >> On Tue, Dec 8, 2015 at 2:13 AM, Joerg Sonnenberger via cfe-commits < >> cfe-commits@lists.llvm.org> wrote: >> >> On Mon, Dec 07, 2015 at 01:32:14PM -0800, Richard Smith via cfe-commits >> wrote: >> > C11 6.3.1.5/1: "If the value being converted is outside the range of >> values >> > that can be represented, the behavior is undefined." >> >> The value of 1e100 can be represented as +inf, even if not precisely. >> >> >> >> Only if +inf is in the range of representable values, which, as already >> noted, is problematic. >> >> >> >> This is a bit different from non-IEEE math like VAX, that doesn't have >> infinities. >> >> >> Joerg >> _______________________________________________ >> cfe-commits mailing list >> cfe-commits@lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >> >> >> > >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits