diff --git a/.travis.yml b/.travis.yml index e404f94..109dec7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -109,7 +109,7 @@ matrix: - os: linux compiler: g++-7 - env: UBSAN=1 TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11,14,17 + env: UBSAN=1 TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11,14,17 UBSAN_OPTIONS=print_stacktrace=1 addons: apt: packages: @@ -221,7 +221,7 @@ matrix: - os: linux compiler: clang++-5.0 - env: UBSAN=1 TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=03,11,14,1z + env: UBSAN=1 TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=03,11,14,1z UBSAN_OPTIONS=print_stacktrace=1 addons: apt: packages: @@ -240,7 +240,7 @@ matrix: - os: linux compiler: clang++-libc++ - env: UBSAN=1 TOOLSET=clang COMPILER=clang++-libc++ CXXSTD=03,11,14,1z + env: UBSAN=1 TOOLSET=clang COMPILER=clang++-libc++ CXXSTD=03,11,14,1z UBSAN_OPTIONS=print_stacktrace=1 addons: apt: packages: @@ -266,7 +266,7 @@ install: script: - |- echo "using $TOOLSET : : $COMPILER ;" > ~/user-config.jam - - ./b2 -j3 libs/system/test toolset=$TOOLSET cxxstd=$CXXSTD variant=debug,release ${UBSAN:+cxxflags=-fsanitize=undefined} ${UBSAN:+cxxflags=-fno-sanitize-recover=undefined} ${UBSAN:+linkflags=-fsanitize=undefined} ${UBSAN:+define=UBSAN=1} + - ./b2 -j3 libs/system/test toolset=$TOOLSET cxxstd=$CXXSTD variant=debug,release ${UBSAN:+cxxflags=-fsanitize=undefined cxxflags=-fno-sanitize-recover=undefined linkflags=-fsanitize=undefined define=UBSAN=1 debug-symbols=on} notifications: email: diff --git a/test/initialization_test.cpp b/test/initialization_test.cpp index 9c89a50..c5ea03c 100644 --- a/test/initialization_test.cpp +++ b/test/initialization_test.cpp @@ -10,19 +10,19 @@ // This test verifiies that the error_category vtable does not suffer from // order-of-initialization problems. -#include #include +#include struct foo { foo() { boost::system::error_code ec; - ec == boost::system::errc::permission_denied; + BOOST_TEST_NE( ec, boost::system::errc::permission_denied ); } } f; -int main( int, char ** ) +int main() { - return ::boost::report_errors(); + return boost::report_errors(); } diff --git a/test/std_mismatch_test.cpp b/test/std_mismatch_test.cpp index 9c97cdd..ed6e3fc 100644 --- a/test/std_mismatch_test.cpp +++ b/test/std_mismatch_test.cpp @@ -12,10 +12,13 @@ # define _CRT_SECURE_NO_WARNINGS #include +#include #include #if defined(BOOST_NO_CXX11_HDR_SYSTEM_ERROR) +BOOST_PRAGMA_MESSAGE("Skipping test, BOOST_NO_CXX11_HDR_SYSTEM_ERROR is defined") + int main() { std::cout @@ -23,6 +26,11 @@ int main() " support header so interoperation will not be tested.\n"; } +#elif defined(UBSAN) + +BOOST_PRAGMA_MESSAGE("Skipping test, UBSAN is defined") +int main() {} + #else #include