From d8d71216e9d51de7bcfc212f422a66a5d6eb71ec Mon Sep 17 00:00:00 2001 From: Daniela Engert Date: Wed, 7 Jun 2017 16:16:23 +0200 Subject: [PATCH 1/4] fix narrowing conversion Signed-off-by: Daniela Engert --- include/boost/system/detail/error_code.ipp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/system/detail/error_code.ipp b/include/boost/system/detail/error_code.ipp index 51ba3f4..77b191a 100644 --- a/include/boost/system/detail/error_code.ipp +++ b/include/boost/system/detail/error_code.ipp @@ -391,7 +391,7 @@ namespace boost::detail::winapi::MAKELANGID_(boost::detail::winapi::LANG_NEUTRAL_, boost::detail::winapi::SUBLANG_DEFAULT_), // Default language &buf[0], - buf.size(), + static_cast(buf.size()), NULL ); From d0fe891bb30a3ee4d07f23f71d65edcc298ab177 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Tue, 5 Sep 2017 04:52:08 +0300 Subject: [PATCH 2/4] Add 'quick' test target --- test/Jamfile.v2 | 3 +++ test/quick.cpp | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 test/quick.cpp diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 77e7ca6..22c2abd 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -122,3 +122,6 @@ project : : : shared @cxx11 : std_mismatch_test_shared_11 ] ; + +# Quick (CI) test +run quick.cpp ; diff --git a/test/quick.cpp b/test/quick.cpp new file mode 100644 index 0000000..882b834 --- /dev/null +++ b/test/quick.cpp @@ -0,0 +1,36 @@ + +// Copyright 2017 Peter Dimov. +// +// Distributed under the Boost Software License, Version 1.0. +// +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt + +// See library home page at http://www.boost.org/libs/system + +#include +#include +#include + +int main() +{ + boost::system::error_category const & bt = boost::system::generic_category(); + + int ev = ENOENT; + + boost::system::error_code bc( ev, bt ); + + BOOST_TEST_EQ( bc.value(), ev ); + BOOST_TEST_EQ( &bc.category(), &bt ); + + boost::system::error_condition bn = bt.default_error_condition( ev ); + + BOOST_TEST_EQ( bn.value(), ev ); + BOOST_TEST_EQ( &bn.category(), &bt ); + + BOOST_TEST( bt.equivalent( ev, bn ) ); + + BOOST_TEST_EQ( bc, bn ); + + return boost::report_errors(); +} From efe849862fce4bad06fcc7a912dad400c5e7ac99 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Tue, 5 Sep 2017 05:26:24 +0300 Subject: [PATCH 3/4] travis: install libstdc++ 4.9 for clang 14/1z --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 93fa51a..680627e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -272,6 +272,7 @@ matrix: apt: packages: - clang-3.8 + - libstdc++-4.9-dev sources: - ubuntu-toolchain-r-test - llvm-toolchain-precise-3.8 @@ -282,6 +283,7 @@ matrix: apt: packages: - clang-3.8 + - libstdc++-4.9-dev sources: - ubuntu-toolchain-r-test - llvm-toolchain-precise-3.8 @@ -312,6 +314,7 @@ matrix: apt: packages: - clang-3.9 + - libstdc++-4.9-dev sources: - ubuntu-toolchain-r-test - llvm-toolchain-precise-3.9 @@ -322,6 +325,7 @@ matrix: apt: packages: - clang-3.9 + - libstdc++-4.9-dev sources: - ubuntu-toolchain-r-test - llvm-toolchain-precise-3.9 From b6ef4ad22015f19fdd85908f45289ae71021dc9c Mon Sep 17 00:00:00 2001 From: Andrey Semashev Date: Tue, 5 Sep 2017 21:32:25 +0300 Subject: [PATCH 4/4] Silence MSVC warnings about 'this' in base class initializer list. --- include/boost/system/error_code.hpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/boost/system/error_code.hpp b/include/boost/system/error_code.hpp index 0d64b2b..12191f9 100644 --- a/include/boost/system/error_code.hpp +++ b/include/boost/system/error_code.hpp @@ -210,6 +210,12 @@ namespace boost = system_category(); #endif +#ifdef BOOST_MSVC +#pragma warning(push) +// 'this' : used in base member initializer list +#pragma warning(disable: 4355) +#endif + // class error_category ------------------------------------------------// class error_category : public noncopyable @@ -328,6 +334,10 @@ namespace boost { return std::less()( this, &rhs ); } }; +#ifdef BOOST_MSVC +#pragma warning(pop) +#endif + // class error_condition ---------------------------------------------------------// // error_conditions are portable, error_codes are system or library specific