https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115074

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mpolacek at gcc dot gnu.org
           See Also|                            |https://gcc.gnu.org/bugzill
                   |                            |a/show_bug.cgi?id=101361
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2024-05-13
             Status|UNCONFIRMED                 |NEW

--- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Confirmed, I think.  Doesn't look like a dup of bug 101361.

In file included from 115074.C:2:
In constructor ‘constexpr std::__detail::__variant::_Variant_storage<true,
_Types ...>::_Variant_storage(std::in_place_index_t<_Np>, _Args&& ...) [with
long unsigned int _Np = 0; _Args = {}; _Types = {int}]’,
    inlined from ‘constexpr std::__detail::__variant::_Copy_ctor_base<true,
int>::_Copy_ctor_base(std::in_place_index_t<_Idx>, _Args&& ...) [with long
unsigned int _Np = 0; _Args = {}][inherited from
std::__detail::__variant::_Variant_storage<true, int>]’ at
/home/mpolacek/x/trunk/x86_64-pc-linux-gnu/libstdc++-v3/include/variant:611:20,
    inlined from ‘constexpr std::__detail::__variant::_Move_ctor_base<true,
int>::_Move_ctor_base(std::in_place_index_t<_Idx>, _Args&& ...) [with long
unsigned int _Np = 0; _Args = {}][inherited from
std::__detail::__variant::_Variant_storage<true, int>]’ at
/home/mpolacek/x/trunk/x86_64-pc-linux-gnu/libstdc++-v3/include/variant:649:20,
    inlined from ‘constexpr std::__detail::__variant::_Copy_assign_base<true,
int>::_Copy_assign_base(std::in_place_index_t<_Idx>, _Args&& ...) [with long
unsigned int _Np = 0; _Args = {}][inherited from
std::__detail::__variant::_Variant_storage<true, int>]’ at
/home/mpolacek/x/trunk/x86_64-pc-linux-gnu/libstdc++-v3/include/variant:701:20,
    inlined from ‘constexpr std::__detail::__variant::_Move_assign_base<true,
int>::_Move_assign_base(std::in_place_index_t<_Idx>, _Args&& ...) [with long
unsigned int _Np = 0; _Args = {}][inherited from
std::__detail::__variant::_Variant_storage<true, int>]’ at
/home/mpolacek/x/trunk/x86_64-pc-linux-gnu/libstdc++-v3/include/variant:755:20,
    inlined from ‘constexpr
std::__detail::__variant::_Variant_base<_Types>::_Variant_base(std::in_place_index_t<_Np>,
_Args&& ...) [with long unsigned int _Np = 0; _Args = {}; _Types = {int}]’ at
/home/mpolacek/x/trunk/x86_64-pc-linux-gnu/libstdc++-v3/include/variant:774:45,
    inlined from ‘constexpr
std::__detail::__variant::_Variant_base<_Types>::_Variant_base() [with _Types =
{int}]’ at
/home/mpolacek/x/trunk/x86_64-pc-linux-gnu/libstdc++-v3/include/variant:769:40,
    inlined from ‘constexpr std::variant<_Types>::variant() requires 
is_default_constructible_v<typename std::_Nth_type<0, _Elements ...>::type>
[with _Types = {int}]’ at
/home/mpolacek/x/trunk/x86_64-pc-linux-gnu/libstdc++-v3/include/variant:1431:7,
    inlined from ‘constexpr decltype (::new(void*(0)) _Tp)
std::construct_at(_Tp*, _Args&& ...) [with _Tp = variant<int>; _Args = {}]’ at
/home/mpolacek/x/trunk/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_construct.h:97:14,
    inlined from ‘static constexpr void
std::allocator_traits<std::allocator<_Up> >::construct(allocator_type&, _Up*,
_Args&& ...) [with _Up = std::variant<int>; _Args = {}; _Tp =
std::variant<int>]’ at
/home/mpolacek/x/trunk/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/alloc_traits.h:536:21,
    inlined from ‘constexpr std::vector<_Tp, _Alloc>::reference
std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {}; _Tp =
std::variant<int>; _Alloc = std::allocator<std::variant<int> >]’ at
/home/mpolacek/x/trunk/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/vector.tcc:117:30,
    inlined from ‘VariantVector::VariantVector()’ at 115074.C:14:26:
/home/mpolacek/x/trunk/x86_64-pc-linux-gnu/libstdc++-v3/include/variant:534:9:
warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
  534 |         _M_index{_Np}
      |         ^~~~~~~~~~~~~
In file included from
/home/mpolacek/x/trunk/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/c++allocator.h:33,
                 from
/home/mpolacek/x/trunk/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/allocator.h:46,
                 from
/home/mpolacek/x/trunk/x86_64-pc-linux-gnu/libstdc++-v3/include/vector:63,
                 from 115074.C:1:
In member function ‘_Tp* std::__new_allocator<_Tp>::allocate(size_type, const
void*) [with _Tp = std::variant<int>]’,
    inlined from ‘constexpr _Tp* std::allocator< <template-parameter-1-1>
>::allocate(std::size_t) [with _Tp = std::variant<int>]’ at
/home/mpolacek/x/trunk/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/allocator.h:196:40,
    inlined from ‘static constexpr _Tp*
std::allocator_traits<std::allocator<_Up> >::allocate(allocator_type&,
size_type) [with _Tp = std::variant<int>]’ at
/home/mpolacek/x/trunk/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/alloc_traits.h:478:28,
    inlined from ‘constexpr std::_Vector_base<_Tp, _Alloc>::pointer
std::_Vector_base<_Tp, _Alloc>::_M_allocate(std::size_t) [with _Tp =
std::variant<int>; _Alloc = std::allocator<std::variant<int> >]’ at
/home/mpolacek/x/trunk/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/stl_vector.h:380:33,
    inlined from ‘constexpr void std::vector<_Tp,
_Alloc>::_M_realloc_append(_Args&& ...) [with _Args = {}; _Tp =
std::variant<int>; _Alloc = std::allocator<std::variant<int> >]’ at
/home/mpolacek/x/trunk/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/vector.tcc:596:44,
    inlined from ‘constexpr std::vector<_Tp, _Alloc>::reference
std::vector<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {}; _Tp =
std::variant<int>; _Alloc = std::allocator<std::variant<int> >]’ at
/home/mpolacek/x/trunk/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/vector.tcc:123:21,
    inlined from ‘VariantVector::VariantVector()’ at 115074.C:13:26:
/home/mpolacek/x/trunk/x86_64-pc-linux-gnu/libstdc++-v3/include/bits/new_allocator.h:151:55:
note: at offset 20 into destination object of size 16 allocated by ‘operator
new’
  151 |         return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n *
sizeof(_Tp)));
      |                                                       ^

Reply via email to