diff --git a/include/chaiscript/chaiscript.hpp b/include/chaiscript/chaiscript.hpp index a6fed122..2d28c962 100644 --- a/include/chaiscript/chaiscript.hpp +++ b/include/chaiscript/chaiscript.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_HPP_ #define CHAISCRIPT_HPP_ diff --git a/include/chaiscript/chaiscript_threading.hpp b/include/chaiscript/chaiscript_threading.hpp index fb958879..cb5e129c 100644 --- a/include/chaiscript/chaiscript_threading.hpp +++ b/include/chaiscript/chaiscript_threading.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_THREADING_HPP_ #define CHAISCRIPT_THREADING_HPP_ diff --git a/include/chaiscript/dispatchkit/bad_boxed_cast.hpp b/include/chaiscript/dispatchkit/bad_boxed_cast.hpp index c9fec769..1c1d729e 100644 --- a/include/chaiscript/dispatchkit/bad_boxed_cast.hpp +++ b/include/chaiscript/dispatchkit/bad_boxed_cast.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_BAD_BOXED_CAST_HPP_ #define CHAISCRIPT_BAD_BOXED_CAST_HPP_ diff --git a/include/chaiscript/dispatchkit/bind_first.hpp b/include/chaiscript/dispatchkit/bind_first.hpp index 5d1ae057..c65c8385 100644 --- a/include/chaiscript/dispatchkit/bind_first.hpp +++ b/include/chaiscript/dispatchkit/bind_first.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_BIND_FIRST_HPP_ #define CHAISCRIPT_BIND_FIRST_HPP_ diff --git a/include/chaiscript/dispatchkit/bootstrap.hpp b/include/chaiscript/dispatchkit/bootstrap.hpp index 279fbc08..cbb91a51 100644 --- a/include/chaiscript/dispatchkit/bootstrap.hpp +++ b/include/chaiscript/dispatchkit/bootstrap.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_BOOTSTRAP_HPP_ #define CHAISCRIPT_BOOTSTRAP_HPP_ diff --git a/include/chaiscript/dispatchkit/bootstrap_stl.hpp b/include/chaiscript/dispatchkit/bootstrap_stl.hpp index 863e990a..6710ed00 100644 --- a/include/chaiscript/dispatchkit/bootstrap_stl.hpp +++ b/include/chaiscript/dispatchkit/bootstrap_stl.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + /// \file /// This file contains utility functions for registration of STL container /// classes. The methodology used is based on the SGI STL concepts. diff --git a/include/chaiscript/dispatchkit/boxed_cast.hpp b/include/chaiscript/dispatchkit/boxed_cast.hpp index 935cebdd..b79d735b 100644 --- a/include/chaiscript/dispatchkit/boxed_cast.hpp +++ b/include/chaiscript/dispatchkit/boxed_cast.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_BOXED_CAST_HPP_ #define CHAISCRIPT_BOXED_CAST_HPP_ diff --git a/include/chaiscript/dispatchkit/boxed_cast_helper.hpp b/include/chaiscript/dispatchkit/boxed_cast_helper.hpp index 02728d32..b00dd045 100644 --- a/include/chaiscript/dispatchkit/boxed_cast_helper.hpp +++ b/include/chaiscript/dispatchkit/boxed_cast_helper.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_BOXED_CAST_HELPER_HPP_ #define CHAISCRIPT_BOXED_CAST_HELPER_HPP_ diff --git a/include/chaiscript/dispatchkit/boxed_number.hpp b/include/chaiscript/dispatchkit/boxed_number.hpp index 0eb68304..8f1e871f 100644 --- a/include/chaiscript/dispatchkit/boxed_number.hpp +++ b/include/chaiscript/dispatchkit/boxed_number.hpp @@ -4,6 +4,9 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + #ifndef CHAISCRIPT_BOXED_NUMERIC_HPP_ #define CHAISCRIPT_BOXED_NUMERIC_HPP_ @@ -588,12 +591,20 @@ namespace chaiscript template static void check_type() { +#ifdef CHAISCRIPT_MSVC +// MSVC complains about this being redundant / tautologica l +#pragma warning(push) +#pragma warning(disable : 4127 6287) +#endif if (sizeof(Source) != sizeof(Target) || std::is_signed() != std::is_signed() || std::is_floating_point() != std::is_floating_point()) { throw chaiscript::detail::exception::bad_any_cast(); } +#ifdef CHAISCRIPT_MSVC +#pragma warning(pop) +#endif } template Target get_as_checked() const diff --git a/include/chaiscript/dispatchkit/boxed_value.hpp b/include/chaiscript/dispatchkit/boxed_value.hpp index 6032ac11..ce943eb9 100644 --- a/include/chaiscript/dispatchkit/boxed_value.hpp +++ b/include/chaiscript/dispatchkit/boxed_value.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_BOXED_VALUE_HPP_ #define CHAISCRIPT_BOXED_VALUE_HPP_ diff --git a/include/chaiscript/dispatchkit/dispatchkit.hpp b/include/chaiscript/dispatchkit/dispatchkit.hpp index 2d6b2155..c4e61983 100644 --- a/include/chaiscript/dispatchkit/dispatchkit.hpp +++ b/include/chaiscript/dispatchkit/dispatchkit.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_DISPATCHKIT_HPP_ #define CHAISCRIPT_DISPATCHKIT_HPP_ diff --git a/include/chaiscript/dispatchkit/dynamic_object.hpp b/include/chaiscript/dispatchkit/dynamic_object.hpp index 2821f2e6..b5afaf15 100644 --- a/include/chaiscript/dispatchkit/dynamic_object.hpp +++ b/include/chaiscript/dispatchkit/dynamic_object.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_DYNAMIC_OBJECT_HPP_ #define CHAISCRIPT_DYNAMIC_OBJECT_HPP_ diff --git a/include/chaiscript/dispatchkit/exception_specification.hpp b/include/chaiscript/dispatchkit/exception_specification.hpp index 8dbee03e..79607fe2 100644 --- a/include/chaiscript/dispatchkit/exception_specification.hpp +++ b/include/chaiscript/dispatchkit/exception_specification.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_EXCEPTION_SPECIFICATION_HPP_ #define CHAISCRIPT_EXCEPTION_SPECIFICATION_HPP_ diff --git a/include/chaiscript/dispatchkit/function_call.hpp b/include/chaiscript/dispatchkit/function_call.hpp index dfb6f370..1980f35c 100644 --- a/include/chaiscript/dispatchkit/function_call.hpp +++ b/include/chaiscript/dispatchkit/function_call.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_FUNCTION_CALL_HPP_ #define CHAISCRIPT_FUNCTION_CALL_HPP_ diff --git a/include/chaiscript/dispatchkit/function_call_detail.hpp b/include/chaiscript/dispatchkit/function_call_detail.hpp index a66194da..d6cb241f 100644 --- a/include/chaiscript/dispatchkit/function_call_detail.hpp +++ b/include/chaiscript/dispatchkit/function_call_detail.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_FUNCTION_CALL_DETAIL_HPP_ #define CHAISCRIPT_FUNCTION_CALL_DETAIL_HPP_ diff --git a/include/chaiscript/dispatchkit/handle_return.hpp b/include/chaiscript/dispatchkit/handle_return.hpp index 6ca37823..8243333b 100644 --- a/include/chaiscript/dispatchkit/handle_return.hpp +++ b/include/chaiscript/dispatchkit/handle_return.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_HANDLE_RETURN_HPP_ #define CHAISCRIPT_HANDLE_RETURN_HPP_ diff --git a/include/chaiscript/dispatchkit/operators.hpp b/include/chaiscript/dispatchkit/operators.hpp index 1c123f37..54c73b94 100644 --- a/include/chaiscript/dispatchkit/operators.hpp +++ b/include/chaiscript/dispatchkit/operators.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_OPERATORS_HPP_ #define CHAISCRIPT_OPERATORS_HPP_ diff --git a/include/chaiscript/dispatchkit/proxy_constructors.hpp b/include/chaiscript/dispatchkit/proxy_constructors.hpp index 14e0a134..bbe79d7a 100644 --- a/include/chaiscript/dispatchkit/proxy_constructors.hpp +++ b/include/chaiscript/dispatchkit/proxy_constructors.hpp @@ -4,6 +4,9 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + #ifndef CHAISCRIPT_PROXY_CONSTRUCTORS_HPP_ #define CHAISCRIPT_PROXY_CONSTRUCTORS_HPP_ diff --git a/include/chaiscript/dispatchkit/proxy_functions.hpp b/include/chaiscript/dispatchkit/proxy_functions.hpp index 6ad5dae2..bb57c698 100644 --- a/include/chaiscript/dispatchkit/proxy_functions.hpp +++ b/include/chaiscript/dispatchkit/proxy_functions.hpp @@ -4,6 +4,9 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + #ifndef CHAISCRIPT_PROXY_FUNCTIONS_HPP_ #define CHAISCRIPT_PROXY_FUNCTIONS_HPP_ diff --git a/include/chaiscript/dispatchkit/proxy_functions_detail.hpp b/include/chaiscript/dispatchkit/proxy_functions_detail.hpp index 496ccb9a..9ce58468 100644 --- a/include/chaiscript/dispatchkit/proxy_functions_detail.hpp +++ b/include/chaiscript/dispatchkit/proxy_functions_detail.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_PROXY_FUNCTIONS_DETAIL_HPP_ #define CHAISCRIPT_PROXY_FUNCTIONS_DETAIL_HPP_ diff --git a/include/chaiscript/dispatchkit/register_function.hpp b/include/chaiscript/dispatchkit/register_function.hpp index b1e5da0e..ef17fb86 100644 --- a/include/chaiscript/dispatchkit/register_function.hpp +++ b/include/chaiscript/dispatchkit/register_function.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_REGISTER_FUNCTION_HPP_ #define CHAISCRIPT_REGISTER_FUNCTION_HPP_ diff --git a/include/chaiscript/dispatchkit/type_conversions.hpp b/include/chaiscript/dispatchkit/type_conversions.hpp index 4c2f596f..e16693a5 100644 --- a/include/chaiscript/dispatchkit/type_conversions.hpp +++ b/include/chaiscript/dispatchkit/type_conversions.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_DYNAMIC_CAST_CONVERSION_HPP_ #define CHAISCRIPT_DYNAMIC_CAST_CONVERSION_HPP_ @@ -340,15 +344,11 @@ namespace chaiscript { } - Type_Conversions(const Type_Conversions &t_other) - : m_mutex(), - m_conversions(t_other.get_conversions()), - m_convertableTypes(t_other.m_convertableTypes), - m_num_types(m_conversions.size()), - m_thread_cache(this), - m_conversion_saves(this) - { - } + Type_Conversions(const Type_Conversions &t_other) = delete; + Type_Conversions(Type_Conversions &&) = default; + + Type_Conversions &operator=(const Type_Conversions &) = delete; + Type_Conversions &operator=(Type_Conversions &&) = default; const std::set &thread_cache() const { diff --git a/include/chaiscript/dispatchkit/type_info.hpp b/include/chaiscript/dispatchkit/type_info.hpp index 034fe844..4e508474 100644 --- a/include/chaiscript/dispatchkit/type_info.hpp +++ b/include/chaiscript/dispatchkit/type_info.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_TYPE_INFO_HPP_ #define CHAISCRIPT_TYPE_INFO_HPP_ diff --git a/include/chaiscript/language/chaiscript_algebraic.hpp b/include/chaiscript/language/chaiscript_algebraic.hpp index 99b361ee..8a49d2ee 100644 --- a/include/chaiscript/language/chaiscript_algebraic.hpp +++ b/include/chaiscript/language/chaiscript_algebraic.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_ALGEBRAIC_HPP_ #define CHAISCRIPT_ALGEBRAIC_HPP_ diff --git a/include/chaiscript/language/chaiscript_common.hpp b/include/chaiscript/language/chaiscript_common.hpp index 32f5c946..602efd54 100644 --- a/include/chaiscript/language/chaiscript_common.hpp +++ b/include/chaiscript/language/chaiscript_common.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_COMMON_HPP_ #define CHAISCRIPT_COMMON_HPP_ diff --git a/include/chaiscript/language/chaiscript_engine.hpp b/include/chaiscript/language/chaiscript_engine.hpp index e4376bed..5d8b6f0d 100644 --- a/include/chaiscript/language/chaiscript_engine.hpp +++ b/include/chaiscript/language/chaiscript_engine.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_ENGINE_HPP_ #define CHAISCRIPT_ENGINE_HPP_ @@ -145,9 +149,6 @@ namespace chaiscript }) , "call_exists"); -// m_engine.add(fun &)>(std::bind(&chaiscript::dispatch::Proxy_Function_Base::operator(), std::placeholders::_1, std::placeholders::_2, std::ref(m_engine.conversions()))), "call"); -// -// m_engine.add(fun( [=](const dispatch::Proxy_Function_Base &t_fun, const std::vector &t_params) -> Boxed_Value { diff --git a/include/chaiscript/language/chaiscript_eval.hpp b/include/chaiscript/language/chaiscript_eval.hpp index 36814d69..95e2218e 100644 --- a/include/chaiscript/language/chaiscript_eval.hpp +++ b/include/chaiscript/language/chaiscript_eval.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_EVAL_HPP_ #define CHAISCRIPT_EVAL_HPP_ diff --git a/include/chaiscript/language/chaiscript_parser.hpp b/include/chaiscript/language/chaiscript_parser.hpp index ce5ddcf2..163d2bb3 100644 --- a/include/chaiscript/language/chaiscript_parser.hpp +++ b/include/chaiscript/language/chaiscript_parser.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_PARSER_HPP_ #define CHAISCRIPT_PARSER_HPP_ diff --git a/include/chaiscript/utility/utility.hpp b/include/chaiscript/utility/utility.hpp index 37438f73..b743c451 100644 --- a/include/chaiscript/utility/utility.hpp +++ b/include/chaiscript/utility/utility.hpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #ifndef CHAISCRIPT_UTILITY_UTILITY_HPP_ #define CHAISCRIPT_UTILITY_UTILITY_HPP_ diff --git a/releasenotes.md b/releasenotes.md index 5f4f3eb1..9951e753 100644 --- a/releasenotes.md +++ b/releasenotes.md @@ -26,7 +26,7 @@ Current Version: 6.0.0 * Modular optimization system; this can be accessed via the ChaiScript_Basic interface * Execution tracing capability; also accessed via ChaiScript_Basic interface -* range-based for loops `for( id : container ) { }` +* range-based for loops `for( id : container ) { }` (much better performance than other loop types) * If-init expressions (ala C++17) * Support for passing r-value references to functions * Support for containing unique_ptr @@ -39,6 +39,7 @@ Current Version: 6.0.0 * Compile size improvements * Significant runtime improvements (see "Modular optimization system") * Significant parser improvements, both with parse-time and parser initialization time (Thanks @niXman) +* Fix type conversion to bool in conditionals #### Improvements Still Need To Be Made diff --git a/samples/fun_call_performance.cpp b/samples/fun_call_performance.cpp index 68a122f8..a519052e 100644 --- a/samples/fun_call_performance.cpp +++ b/samples/fun_call_performance.cpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #include #include #include diff --git a/src/main.cpp b/src/main.cpp index eb9a245b..4179a6bf 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #include #include #include diff --git a/src/stl_extra.cpp b/src/stl_extra.cpp index 4442df92..cd0ec663 100644 --- a/src/stl_extra.cpp +++ b/src/stl_extra.cpp @@ -4,6 +4,10 @@ // Copyright 2009-2017, Jason Turner (jason@emptycrate.com) // http://www.chaiscript.com +// This is an open source non-commercial project. Dear PVS-Studio, please check it. +// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com + + #include #include #include diff --git a/unittests/compiled_tests.cpp b/unittests/compiled_tests.cpp index 1a94c738..c1716ec9 100644 --- a/unittests/compiled_tests.cpp +++ b/unittests/compiled_tests.cpp @@ -198,7 +198,7 @@ TEST_CASE("Throw int or double") chai.eval("throw(1.0)", chaiscript::exception_specification()); REQUIRE(false); } catch (const double e) { - CHECK(e == 1.0); + CHECK(e == Approx(1.0)); } } diff --git a/unittests/integer_literal_test.cpp b/unittests/integer_literal_test.cpp index 9ac88081..3187b65d 100644 --- a/unittests/integer_literal_test.cpp +++ b/unittests/integer_literal_test.cpp @@ -3,6 +3,13 @@ #include "../static_libs/chaiscript_stdlib.hpp" +#ifdef CHAISCRIPT_MSVC +// ignore errors about negative unsigned integer literals +#pragma warning(push) +#pragma warning(disable : 4146) +#endif + + #define TEST_LITERAL(v) test_literal(v, #v) #define TEST_LITERAL_SIGNED(v) test_literal(v, #v, true) @@ -192,12 +199,18 @@ int main() && TEST_LITERAL(255) && TEST_LITERAL(65535) && TEST_LITERAL(16777215) - && TEST_LITERAL(4294967295) +#ifndef CHAISCRIPT_MSVC + // bug in cl.exe causes this to be incorrectly parsed as an unsigned + && TEST_LITERAL(4294967295) +#endif && TEST_LITERAL_SIGNED(-255) && TEST_LITERAL_SIGNED(-65535) && TEST_LITERAL_SIGNED(-16777215) - && TEST_LITERAL_SIGNED(-4294967295) +#ifndef CHAISCRIPT_MSVC + // bug in cl.exe causes this to be incorrectly parsed as an unsigned + && TEST_LITERAL_SIGNED(-4294967295) +#endif && TEST_LITERAL(255u) && TEST_LITERAL(65535u) @@ -212,12 +225,18 @@ int main() && TEST_LITERAL(255l) && TEST_LITERAL(65535l) && TEST_LITERAL(16777215l) - && TEST_LITERAL(4294967295l) +#ifndef CHAISCRIPT_MSVC + // bug in cl.exe causes this to be incorrectly parsed as an unsigned + && TEST_LITERAL(4294967295l) +#endif && TEST_LITERAL_SIGNED(-255l) && TEST_LITERAL_SIGNED(-65535l) && TEST_LITERAL_SIGNED(-16777215l) - && TEST_LITERAL_SIGNED(-4294967295l) +#ifndef CHAISCRIPT_MSVC + // bug in cl.exe causes this to be incorrectly parsed as an unsigned + && TEST_LITERAL_SIGNED(-4294967295l) +#endif && TEST_LITERAL(255ul) && TEST_LITERAL(65535ul) @@ -257,8 +276,9 @@ int main() return EXIT_FAILURE; } - - - - } + + +#ifdef CHAISCRIPT_MSVC +#pragma warning(pop) +#endif