re PR libstdc++/52799 (deque::emplace(iterator, ...) tries to call push_front(...), which doesn't exist)
2012-03-30 Jeffrey Yasskin <jyasskin@gcc.gnu.org> Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/52799 * include/bits/deque.tcc (emplace): Fix thinko, replace push_front -> emplace_front, and likewise for *_back. * testsuite/23_containers/deque/modifiers/emplace/52799.cc: New. * testsuite/23_containers/list/modifiers/emplace/52799.cc: Likewise. * testsuite/23_containers/vector/modifiers/emplace/52799.cc: Likewise. Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com> From-SVN: r186035
This commit is contained in:
parent
5b949647d5
commit
195940adc0
|
@ -1,3 +1,13 @@
|
||||||
|
2012-03-30 Jeffrey Yasskin <jyasskin@gcc.gnu.org>
|
||||||
|
Paolo Carlini <paolo.carlini@oracle.com>
|
||||||
|
|
||||||
|
PR libstdc++/52799
|
||||||
|
* include/bits/deque.tcc (emplace): Fix thinko, replace push_front
|
||||||
|
-> emplace_front, and likewise for *_back.
|
||||||
|
* testsuite/23_containers/deque/modifiers/emplace/52799.cc: New.
|
||||||
|
* testsuite/23_containers/list/modifiers/emplace/52799.cc: Likewise.
|
||||||
|
* testsuite/23_containers/vector/modifiers/emplace/52799.cc: Likewise.
|
||||||
|
|
||||||
2012-03-28 Benjamin Kosnik <bkoz@redhat.com>
|
2012-03-28 Benjamin Kosnik <bkoz@redhat.com>
|
||||||
|
|
||||||
PR libstdc++/52689
|
PR libstdc++/52689
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// Deque implementation (out of line) -*- C++ -*-
|
// Deque implementation (out of line) -*- C++ -*-
|
||||||
|
|
||||||
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
|
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
|
||||||
// 2009, 2010, 2011
|
// 2009, 2010, 2011, 2012
|
||||||
// Free Software Foundation, Inc.
|
// Free Software Foundation, Inc.
|
||||||
//
|
//
|
||||||
// This file is part of the GNU ISO C++ Library. This library is free
|
// This file is part of the GNU ISO C++ Library. This library is free
|
||||||
|
@ -175,12 +175,12 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
|
||||||
{
|
{
|
||||||
if (__position._M_cur == this->_M_impl._M_start._M_cur)
|
if (__position._M_cur == this->_M_impl._M_start._M_cur)
|
||||||
{
|
{
|
||||||
push_front(std::forward<_Args>(__args)...);
|
emplace_front(std::forward<_Args>(__args)...);
|
||||||
return this->_M_impl._M_start;
|
return this->_M_impl._M_start;
|
||||||
}
|
}
|
||||||
else if (__position._M_cur == this->_M_impl._M_finish._M_cur)
|
else if (__position._M_cur == this->_M_impl._M_finish._M_cur)
|
||||||
{
|
{
|
||||||
push_back(std::forward<_Args>(__args)...);
|
emplace_back(std::forward<_Args>(__args)...);
|
||||||
iterator __tmp = this->_M_impl._M_finish;
|
iterator __tmp = this->_M_impl._M_finish;
|
||||||
--__tmp;
|
--__tmp;
|
||||||
return __tmp;
|
return __tmp;
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
// { dg-options "-std=gnu++11" }
|
||||||
|
// { dg-do compile }
|
||||||
|
|
||||||
|
// Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
|
//
|
||||||
|
// This file is part of the GNU ISO C++ Library. This library is free
|
||||||
|
// software; you can redistribute it and/or modify it under the
|
||||||
|
// terms of the GNU General Public License as published by the
|
||||||
|
// Free Software Foundation; either version 3, or (at your option)
|
||||||
|
// any later version.
|
||||||
|
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License along
|
||||||
|
// with this library; see the file COPYING3. If not see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
#include <deque>
|
||||||
|
|
||||||
|
// libstdc++/52799
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
std::deque<int> d;
|
||||||
|
d.emplace(d.begin());
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
// { dg-options "-std=gnu++11" }
|
||||||
|
// { dg-do compile }
|
||||||
|
|
||||||
|
// Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
|
//
|
||||||
|
// This file is part of the GNU ISO C++ Library. This library is free
|
||||||
|
// software; you can redistribute it and/or modify it under the
|
||||||
|
// terms of the GNU General Public License as published by the
|
||||||
|
// Free Software Foundation; either version 3, or (at your option)
|
||||||
|
// any later version.
|
||||||
|
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License along
|
||||||
|
// with this library; see the file COPYING3. If not see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
#include <list>
|
||||||
|
|
||||||
|
// libstdc++/52799
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
std::list<int> l;
|
||||||
|
l.emplace(l.begin());
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
// { dg-options "-std=gnu++11" }
|
||||||
|
// { dg-do compile }
|
||||||
|
|
||||||
|
// Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
|
//
|
||||||
|
// This file is part of the GNU ISO C++ Library. This library is free
|
||||||
|
// software; you can redistribute it and/or modify it under the
|
||||||
|
// terms of the GNU General Public License as published by the
|
||||||
|
// Free Software Foundation; either version 3, or (at your option)
|
||||||
|
// any later version.
|
||||||
|
|
||||||
|
// This library is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
|
||||||
|
// You should have received a copy of the GNU General Public License along
|
||||||
|
// with this library; see the file COPYING3. If not see
|
||||||
|
// <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
// libstdc++/52799
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
std::vector<int> v;
|
||||||
|
v.emplace(v.begin());
|
||||||
|
}
|
Loading…
Reference in New Issue