On Tue 20 Dec 2016 23:58, Matt Wette <matt.we...@gmail.com> writes: > With the patch below I can get through all the tests on my Mac (macOS > 10.12.2) if I use default flags (i.e., -g -O2) and gcc-4.9 (now verifying > also w/ gcc-6.2). The patch is a hack to > get around an apparent optimization that thinks the sine of -0.0 is +0.0. > > Matt > > --- libguile/numbers.c-orig 2016-11-21 13:56:23.000000000 -0800 > +++ libguile/numbers.c 2016-12-20 14:43:58.000000000 -0800 > @@ -9099,6 +9099,9 @@ > #undef FUNC_NAME > > SCM > +#ifdef __APPLE__ > +__attribute__((optimize("O0"))) > +#endif > scm_c_make_polar (double mag, double ang) > { > double s, c;
Aaah, thank you for tracking this one down! So. I assume that with GCC (any version) everything is fine. This is apparently an optimization in LLVM. But... is LLVM wrong, or are we wrong? I guess LLVM is wrong, right, since the result depends on the optimization level? Surely we should be able to produce a nice compiler bug report out of this :) Andy