mirror of
https://github.com/boostorg/function.git
synced 2026-01-28 19:22:09 +00:00
Compare commits
4 Commits
feature/up
...
boost-1.81
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
16fca8368b | ||
|
|
4cf7c718b8 | ||
|
|
389f886bc3 | ||
|
|
5b4e2797a2 |
@@ -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