[Bug libstdc++/63993] New: vector::insert( make_move_iterator... ) broken by GLIBCXX_DEBUG.
pluto at agmk dot net
gcc-bugzilla@gcc.gnu.org
Thu Nov 20 12:00:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63993
Bug ID: 63993
Summary: vector::insert( make_move_iterator... ) broken by
GLIBCXX_DEBUG.
Product: gcc
Version: 4.9.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: pluto at agmk dot net
#include <iterator>
#include <string>
#include <vector>
int main()
{
std::vector< std::string > v, t;
t.push_back( "hello" );
v.insert( v.end(), std::make_move_iterator( t.begin() ),
std::make_move_iterator( t.end() ) );
t.clear();
}
% LANG=C
~/dvm/master/toolchain/gcc/sysroot/x86_64-gnu-linux/bin/x86_64-gnu-linux-g++
-Wall gcc-bug-new.cpp -std=c++11 -D_GLIBCXX_DEBUG=1
(...)
gcc-bug-new.cpp:9:97: required from here
/home/pawels/dvm/master/toolchain/gcc/sysroot/x86_64-gnu-linux/x86_64-gnu-linux/include/c++/4.9.2/debug/functions.h:220:69:
error: invalid initialization of non-const reference of type
'std::__7::basic_string<char>&' from an rvalue of type
'std::__7::move_iterator<__gnu_debug::_Safe_iterator<__gnu_cxx::__7::__normal_iterator<std::__7::basic_string<char>*,
std::__cxx1998::__7::vector<std::__7::basic_string<char>,
std::__7::allocator<std::__7::basic_string<char> > > >,
std::__debug::vector<std::__7::basic_string<char> > > >::value_type {aka
std::__7::basic_string<char>}'
return __foreign_iterator_aux4(__it, std::__addressof(*__other));
^
In file included from
/home/pawels/dvm/master/toolchain/gcc/sysroot/x86_64-gnu-linux/x86_64-gnu-linux/include/c++/4.9.2/debug/functions.h:36:0,
from
/home/pawels/dvm/master/toolchain/gcc/sysroot/x86_64-gnu-linux/x86_64-gnu-linux/include/c++/4.9.2/debug/debug.h:127,
from
/home/pawels/dvm/master/toolchain/gcc/sysroot/x86_64-gnu-linux/x86_64-gnu-linux/include/c++/4.9.2/bits/stl_iterator_base_funcs.h:65,
from
/home/pawels/dvm/master/toolchain/gcc/sysroot/x86_64-gnu-linux/x86_64-gnu-linux/include/c++/4.9.2/iterator:62,
from gcc-bug-new.cpp:1:
/home/pawels/dvm/master/toolchain/gcc/sysroot/x86_64-gnu-linux/x86_64-gnu-linux/include/c++/4.9.2/bits/move.h:47:5:
note: in passing argument 1 of '_Tp* std::__7::__addressof(_Tp&) [with _Tp =
std::__7::basic_string<char>]'
__addressof(_Tp& __r) _GLIBCXX_NOEXCEPT
^
More information about the Gcc-bugs
mailing list