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 ^