On 16.01.19 02:00, Raffi Enficiaud via Boost wrote:
Hi,
I am trying to correct for the errors reported by UBSAN in boost.test. A lot of them were false positive, as ... in boost.test, we check the capacity of the framework to catch various errors in the program.
I compile/run the tests with the following:
.../../../b2 \ --toolset=clang \ cxxflags=-std=c++11 \ cxxflags=-fno-omit-frame-pointer \ cxxflags=-fsanitize=undefined \ cxxflags=-fno-sanitize-recover=undefined \ cxxflags=-fsanitize-recover=integer-divide-by-zero \ cxxflags=-fsanitize-recover=float-divide-by-zero \ linkflags=-fsanitize=undefined \ linkflags=-fno-sanitize-recover=undefined \ linkflags=-fsanitize-recover=integer-divide-by-zero \ linkflags=-fsanitize-recover=float-divide-by-zero \ linkflags=-fuse-ld=gold \ variant=debug
I have an exception that is failing the tests on clang-6/ubuntu18.04 (UBSAN exiting the process), but not on gcc-8/ubuntu18.04 (full log below).
UndefinedBehaviorSanitizer:DEADLYSIGNAL ==8303==ERROR: UndefinedBehaviorSanitizer: FPE on unknown address
This FPE is happening for instance after reading from a null pointer.
I've searched on how to silence/blacklist this, but none of the approaches worked so far, and I am not sure what is provoking this FPE.
Is there any UBsan specialist? Does anyone have an idea?
Thanks, Raffi
I am a bit blocked by this now, any specialist in the room or should I just discard ubsan with clang 6? Thanks! Raffi