http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55522



             Bug #: 55522

           Summary: -funsafe-math-optimizations is unexpectedly harmful,

                    especially w/ -shared

    Classification: Unclassified

           Product: gcc

           Version: unknown

            Status: UNCONFIRMED

          Severity: normal

          Priority: P3

         Component: c++

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: l...@mit.edu





The docs for -funsafe-math-optimizations say:



When used at link-time, it may include libraries or startup files that change

the default FPU control word or other similar optimizations. 



This is, IMO, really bad.  One might naively assume (if you haven't thought

about that) that -ffast-math and -funsafe-math-optimizations merely affect code

generation.  This is true if you *compile* with -ffast-math, but if you *link*

with it, then you end up breaking IEEE758 semantics program-wide.  This causes

real-life problems.



Please consider some combination of:



1. Making -funsafe-math-optimizations illegal when combined with -shared.



2. Splitting the inclusion of crtfastmath.o into its own option

(-funsafe-math-mode-at-startup, perhaps) and make -ffast-math (and -Ofast) not

set that one.



3. Mention in the docs just how bad this is in shared libraries.

Reply via email to