Skip to content

Fails to build with GCC 15 #186

@sebastic

Description

@sebastic

mapbox variant fails build with GCC 15 as reported in Debian Bug #1114197:

[...]
/usr/include/c++/15/bits/char_traits.h:352:16: error: '((const std::char_traits<char>::char_type*)((char*)&temp + offsetof(boost::variant<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >,boo
st::variant<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::storage_.boost::aligned_storage<32, 8>::<unnamed>.boost::detail::aligned_storage::aligned_storage_imp<32, 8>::data_)))[16]' may 
be used uninitialized [-Werror=maybe-uninitialized]
  352 |         __c1 = __c2;
      |                ^~~~
In file included from /usr/include/boost/variant.hpp:17,
                 from test/bench_variant.cpp:12:
/usr/include/boost/variant/variant.hpp: In function 'void run_boost_test(std::size_t)':
/usr/include/boost/variant/variant.hpp:2107:21: note: 'temp' declared here
 2107 |             variant temp(rhs);
      |                     ^~~~
[...]
/usr/include/c++/15/bits/basic_string.h:1165:19: error: '*(const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)((char*)&temp + offsetof(boost::variant<int, double, std::__cxx11::basic_string<char, std:
:char_traits<char>, std::allocator<char> > >,boost::variant<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::storage_.boost::aligned_storage<32, 8>::<unnamed>.boost::detail::aligned_storage
::aligned_storage_imp<32, 8>::data_)).std::__cxx11::basic_string<char>::_M_string_length' may be used uninitialized [-Werror=maybe-uninitialized]
 1165 |         size_type __sz = _M_string_length;
      |                   ^~~~
/usr/include/boost/variant/variant.hpp: In function 'void run_boost_test(std::size_t)':
/usr/include/boost/variant/variant.hpp:2107:21: note: 'temp' declared here
 2107 |             variant temp(rhs);
      |                     ^~~~
[...]
/usr/include/c++/15/bits/basic_string.h:992:24: error: '*(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)((char*)&temp + offsetof(boost::variant<int, double, std::__cxx11::basic_string<char, std::char_t
raits<char>, std::allocator<char> > >,boost::variant<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::storage_.boost::aligned_storage<32, 8>::<unnamed>.boost::detail::aligned_storage::align
ed_storage_imp<32, 8>::data_)).std::__cxx11::basic_string<char>::<anonymous>.std::__cxx11::basic_string<char>::<unnamed union>::_M_allocated_capacity' may be used uninitialized [-Werror=maybe-uninitialized]
  992 |             _M_capacity(__str._M_allocated_capacity);
      |             ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/variant/variant.hpp: In function 'void run_boost_test(std::size_t)':
/usr/include/boost/variant/variant.hpp:2107:21: note: 'temp' declared here
 2107 |             variant temp(rhs);
      |                     ^~~~
[...]
/usr/include/c++/15/bits/basic_string.h:992:24: error: '*(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)((char*)&temp + offsetof(boost::variant<int, double, std::__cxx11::basic_string<char, std::char_t
raits<char>, std::allocator<char> > >,boost::variant<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::storage_.boost::aligned_storage<32, 8>::<unnamed>.boost::detail::aligned_storage::align
ed_storage_imp<32, 8>::data_)).std::__cxx11::basic_string<char>::<anonymous>.std::__cxx11::basic_string<char>::<unnamed union>::_M_allocated_capacity' may be used uninitialized [-Werror=maybe-uninitialized]
  992 |             _M_capacity(__str._M_allocated_capacity);
      |             ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/boost/variant/variant.hpp: In function 'void run_boost_test(std::size_t)':
/usr/include/boost/variant/variant.hpp:2107:21: note: 'temp' declared here
 2107 |             variant temp(rhs);
      |                     ^~~~
[...]
/usr/include/c++/15/bits/basic_string.h:282:17: error: '*(const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)((char*)&temp + offsetof(boost::variant<int, double, std::__cxx11::basic_string<char, std::
char_traits<char>, std::allocator<char> > >,boost::variant<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::storage_.boost::aligned_storage<32, 8>::<unnamed>.boost::detail::aligned_storage:
:aligned_storage_imp<32, 8>::data_)).std::__cxx11::basic_string<char>::_M_string_length' may be used uninitialized [-Werror=maybe-uninitialized]
  282 |             if (_M_string_length > _S_local_capacity)
      |                 ^~~~~~~~~~~~~~~~
/usr/include/boost/variant/variant.hpp: In function 'void run_boost_test(std::size_t)':
/usr/include/boost/variant/variant.hpp:2107:21: note: 'temp' declared here
 2107 |             variant temp(rhs);
      |                     ^~~~
[...]
/usr/include/c++/15/bits/basic_string.h:282:17: error: '*(const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*)((char*)&temp + offsetof(boost::variant<int, double, std::__cxx11::basic_string<char, std::
char_traits<char>, std::allocator<char> > >,boost::variant<int, double, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::storage_.boost::aligned_storage<32, 8>::<unnamed>.boost::detail::aligned_storage:
:aligned_storage_imp<32, 8>::data_)).std::__cxx11::basic_string<char>::_M_string_length' may be used uninitialized [-Werror=maybe-uninitialized]
  282 |             if (_M_string_length > _S_local_capacity)
      |                 ^~~~~~~~~~~~~~~~
/usr/include/boost/variant/variant.hpp: In function 'void run_boost_test(std::size_t)':
/usr/include/boost/variant/variant.hpp:2107:21: note: 'temp' declared here
 2107 |             variant temp(rhs);
      |                     ^~~~
[...]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions