forked from boostorg/function
Compare commits
5 Commits
feature/up
...
esp-idf-co
Author | SHA1 | Date | |
---|---|---|---|
e467a58fd6 | |||
16fca8368b | |||
4cf7c718b8 | |||
389f886bc3 | |||
5b4e2797a2 |
@ -3,6 +3,8 @@
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# https://www.boost.org/LICENSE_1_0.txt
|
||||
|
||||
if(NOT DEFINED IDF_TARGET)
|
||||
|
||||
cmake_minimum_required(VERSION 3.5...3.16)
|
||||
|
||||
project(boost_function VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX)
|
||||
@ -32,3 +34,27 @@ if(BUILD_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt")
|
||||
|
||||
endif()
|
||||
|
||||
else()
|
||||
|
||||
FILE(GLOB_RECURSE headers include/*.h include/*.hpp)
|
||||
|
||||
idf_component_register(
|
||||
SRCS
|
||||
${headers}
|
||||
INCLUDE_DIRS
|
||||
include
|
||||
REQUIRES
|
||||
boost_assert
|
||||
boost_bind
|
||||
boost_config
|
||||
boost_core
|
||||
boost_integer
|
||||
boost_preprocessor
|
||||
boost_throw_exception
|
||||
boost_type_index
|
||||
boost_type_traits
|
||||
boost_typeof
|
||||
)
|
||||
|
||||
endif()
|
||||
|
||||
|
@ -906,6 +906,10 @@ namespace boost {
|
||||
// This warning is technically correct, but we don't want to pay the price for initializing
|
||||
// just to silence a warning: https://github.com/boostorg/function/issues/27
|
||||
# pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
|
||||
# if (BOOST_GCC >= 120000)
|
||||
// GCC 12 emits a different warning: https://github.com/boostorg/function/issues/42
|
||||
# pragma GCC diagnostic ignored "-Wuninitialized"
|
||||
# endif
|
||||
# endif
|
||||
std::memcpy(this->functor.data, f.functor.data, sizeof(boost::detail::function::function_buffer));
|
||||
# if defined(BOOST_GCC) && (BOOST_GCC >= 40700)
|
||||
@ -1004,6 +1008,10 @@ namespace boost {
|
||||
// This warning is technically correct, but we don't want to pay the price for initializing
|
||||
// just to silence a warning: https://github.com/boostorg/function/issues/27
|
||||
# pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
|
||||
# if (BOOST_GCC >= 120000)
|
||||
// GCC 12 emits a different warning: https://github.com/boostorg/function/issues/42
|
||||
# pragma GCC diagnostic ignored "-Wuninitialized"
|
||||
# endif
|
||||
# endif
|
||||
std::memcpy(this->functor.data, f.functor.data, sizeof(this->functor.data));
|
||||
# if defined(BOOST_GCC) && (BOOST_GCC >= 40700)
|
||||
|
@ -82,3 +82,5 @@ run test_return_function.cpp return_function/<cxxstd>14 : : : <link>shared $(che
|
||||
run test_return_function.cpp return_function/<cxxstd>14 : : : <link>static $(check14) : return_function_static_14 ;
|
||||
|
||||
run quick.cpp ;
|
||||
|
||||
compile issue_42.cpp ;
|
||||
|
21
test/issue_42.cpp
Normal file
21
test/issue_42.cpp
Normal file
@ -0,0 +1,21 @@
|
||||
// Copyright 2022 Peter Dimov.
|
||||
// Distributed under the Boost Software License, Version 1.0.
|
||||
// https://www.boost.org/LICENSE_1_0.txt
|
||||
//
|
||||
// https://github.com/boostorg/function/issues/42
|
||||
|
||||
#include <boost/function.hpp>
|
||||
|
||||
struct F
|
||||
{
|
||||
int operator()( int x ) const { return -x; }
|
||||
};
|
||||
|
||||
struct X
|
||||
{
|
||||
boost::function<int(int)> f_;
|
||||
explicit X( boost::function<int(int)> f ): f_( f ) {}
|
||||
};
|
||||
|
||||
F f2;
|
||||
X x( f2 ); // -Wuninitialized under GCC 12
|
Reference in New Issue
Block a user