https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70117
--- Comment #4 from Ulrich Weigand <uweigand at gcc dot gnu.org> --- (In reply to Alan Modra from comment #3) > > while with GCC, we get: > > > > high double: 7FEFFFFF FFFFFFFF > > low double: 7C8FFFFF FFFFFFFE > > Right. This is 0x1.fffffffffffff7ffffffffffff8p+1023 > > gnulib isn't correct here. As the comment says the high double must be the > value of the long double correctly rounded to double (to nearest since that > is the only mode supported for IBM extended double). Any long double value > higher than the above will round up the high double to inf. Well, what I don't quite understand is that the gnulib value, which is 0x1.fffffffffffff7ffffffffffffcp+1023 likewise should round to the same double value, shouldn't it? I notice that if I actually attempt to use that value in C source code, the compiler does indeed round it to inf -- but I don't see why it actually should do so ...