On Thu, 10 Nov 2022, Xi Ruoyao via Gcc-patches wrote: > Joseph: can you confirm that -ftrapping-math allows floor and ceil to > raise inexact exception? The man page currently says: > > The default is -ffp-int-builtin-inexact, allowing the exception to be > raised, unless C2X or a later C standard is selected. This option does > ^^^^^^^^^^^ > nothing unless -ftrapping-math is in effect. > > To me it's not very clear that "this option" stands for -fno-fp-int- > builtin-inexact or -ffp-int-builtin-inexact.
The -ftrapping-math option (which is on by default) means that we care about whether operations raise exceptions: they should raise exceptions if and only if the relevant standard permit them to do so. The combination of -ftrapping-math with -fno-fp-int-builtin-inexact means the listed built-in functions must not raise "inexact". If -fno-trapping-math is used, then we don't care about whether exceptions are raised or not (for any floating-point operations, not just those functions). So given -fno-trapping-math, there is no difference between -fno-fp-int-builtin-inexact and -ffp-int-builtin-inexact. If -ffp-int-builtin-inexact (default before C2X), we don't care about whether those functions raise "inexact" (but still care about other exceptions and exceptions for other operations, unless -fno-trapping-math). -- Joseph S. Myers jos...@codesourcery.com