public inbox for libstdc++@gcc.gnu.org
 help / color / mirror / Atom feed
From: Marc Glisse <marc.glisse@inria.fr>
To: Jonathan Wakely <jwakely@redhat.com>
Cc: Matthias Kretz <m.kretz@gsi.de>,
	gcc-patches@gcc.gnu.org,  libstdc++ <libstdc++@gcc.gnu.org>
Subject: Re: [PATCH] Let numeric_limits::is_iec559 reflect -ffast-math
Date: Thu, 21 May 2020 17:46:01 +0200 (CEST)	[thread overview]
Message-ID: <alpine.DEB.2.22.394.2005211721020.5491@stedding.saclay.inria.fr> (raw)
In-Reply-To: <20200521142449.GE2678@redhat.com>

On Thu, 21 May 2020, Jonathan Wakely wrote:

> On 27/04/20 17:09 +0200, Matthias Kretz wrote:
>> 
>> From: Matthias Kretz <kretz@kde.org>
>>
>>        PR libstdc++/84949
>>        * include/std/limits: Let is_iec559 reflect whether
>>        __GCC_IEC_559 says float and double support IEEE 754-2008.
>>        * testsuite/18_support/numeric_limits/is_iec559.cc: Test IEC559
>>        mandated behavior if is_iec559 is true.
>>        * testsuite/18_support/numeric_limits/infinity.cc: Only test inf
>>        behavior if is_iec559 is true, otherwise there is no guarantee
>>        how arithmetic on inf behaves.
>>        * testsuite/18_support/numeric_limits/quiet_NaN.cc: ditto for
>>        NaN.
>>        * testsuite/18_support/numeric_limits/denorm_min-1.cc: Compile
>>        with -ffast-math.
>>        * testsuite/18_support/numeric_limits/epsilon-1.cc: ditto.
>>        * testsuite/18_support/numeric_limits/infinity-1.cc: ditto.
>>        * testsuite/18_support/numeric_limits/is_iec559-1.cc: ditto.
>>        * testsuite/18_support/numeric_limits/quiet_NaN-1.cc: ditto.
>
> I'm inclined to go ahead and commit this (to master only, obviously).
> It certainly seems more correct to me, and we'll probably never find
> out if it's "safe" to do unless we actually change it and see what
> happens.
>
> Marc, do you have an opinion?

I don't have a strong opinion on this. I thought we were refraining from 
changing numeric_limits based on flags (like -fwrapv for modulo) because 
that would lead to ODR violations when people link objects compiled with 
different flags. There is a value in libstdc++.so, which may have been 
compiled with different flags than the application.

Also, IIRC part of the effect of -ffast-math is at link time (linking some 
object that enables flush-to-zero). Anyway, as discussed in the PR, what 
numeric_limits says here is not very meaningful, and users can't rely on 
it 100%.

By default, numeric_limits gives yes if IEC support exists on the 
platform. The change would sometimes make it say no, when we know for sure 
that this support is not enabled at the beginning of the translation unit. 
Why not...

-- 
Marc Glisse

  reply	other threads:[~2020-05-21 15:46 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-27 15:09 Matthias Kretz
2020-05-21 14:24 ` Jonathan Wakely
2020-05-21 15:46   ` Marc Glisse [this message]
2020-05-21 15:58     ` Jonathan Wakely
2020-05-22  7:49     ` Matthias Kretz
2020-05-22 16:39       ` Jonathan Wakely
2020-05-25  8:06         ` Matthias Kretz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.DEB.2.22.394.2005211721020.5491@stedding.saclay.inria.fr \
    --to=marc.glisse@inria.fr \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jwakely@redhat.com \
    --cc=libstdc++@gcc.gnu.org \
    --cc=m.kretz@gsi.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).