Skip to content

Fails to build with GCC 15 #186

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