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.