I built cctbx on Linux with recently released Clang 3.8 and with Boost 1.59, but it didn't reproduce the problems. tst_lbfgs_fem.py fails but it's just that two numbers in one test differ slightly more than the allowed precision. I don't want to go deeper into it, although the original problem that Richard located at: if (f_sq > 0) f = std::sqrt(f_sq); else f = 0; is interesting. It seems that sqrt is hoisted in some situations which causes problems with -ffast-math. I wouldn't think that compiler may speculatively run sqrt, but it can[1], it must be sometimes faster. [1] http://reviews.llvm.org/D2428 Marcin PS. this is rather heavy-handed: r24214 | rjgildea | 2016-04-07 16:42:49 +0100 (czw, 07 kwi 2016) | 1 line A couple of dials tests crash after XCode 7.3 update with -O2 or -O3 flags set: setting -O1 optimization appears to be the only way to get them to pass. With -O1 it is no longer necessary to use volatile keyword in xray/conversions.h Index: libtbx/SConscript =================================================================== --- libtbx/SConscript (revision 24213) +++ libtbx/SConscript (revision 24214) @@ -880,7 +880,7 @@ if (libtbx.env.build_options.optimization): opts = [ "-DNDEBUG", - "-O3", + "-O1", ]