On Sun, Nov 11, 2018 at 4:26 PM James E. King III via Boost < boost@lists.boost.org> wrote:
I was putting together some additional testing for a library and my CI jobs were failing in release mode. I was able to reproduce the issue locally. On examination of the boost test matrix however I was unable to see the same failures. When I dug into it a little bit more, it looks like the clang linux build jobs only build the default variant (debug), and therefore will not catch release-mode optimization issues when running the unit tests.
Here's one of the job details:
https://www.boost.org/development/tests/develop/teeks99-02-dc6-17-Docker-64o...
Given this matrix is the last line of defense before code is merged from develop to master, I'd suggest that the build jobs should all be targeting variant=release instead of variant=debug. The former directly impacts a release, and the latter does not.
Interesting catch. There is the 'teeks99-02-mc7-opt-Docker-64on64' [1] configuration that manually specifies the -O2 flag (and a similar one for gcc [2]). Does this find the issue that you are looking for? What does variant=release do on posix platforms? For visual studio builds there is a specific set of things that are defaulted for "release" builds vs. "debug" builds, but I don't think that translates exactly to GCC/Clang. (Please correct me if I'm wrong). Tom [1] https://www.boost.org/development/tests/master/teeks99-02-mc7-opt-Docker-64o... [2] https://www.boost.org/development/tests/master/teeks99-02-mg8-opt-Docker-64o...