From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15222 invoked by alias); 18 Jun 2010 18:08:25 -0000 Received: (qmail 13617 invoked by alias); 18 Jun 2010 18:08:06 -0000 Date: Fri, 18 Jun 2010 18:08:00 -0000 Message-ID: <20100618180806.13616.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug libstdc++/32618] std::vector calls uneccessary constructors instead of inplace construction of first object In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "paolo at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2010-06/txt/msg01856.txt.bz2 ------- Comment #11 from paolo at gcc dot gnu dot org 2010-06-18 18:08 ------- Subject: Bug 32618 Author: paolo Date: Fri Jun 18 18:07:45 2010 New Revision: 161009 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=161009 Log: 2010-06-18 Paolo Carlini PR libstdc++/32618 * include/bits/stl_list.h (vector<>::_M_default_initialize, _M_default_append): Declare. (list<>::list(size_type), resize(size_type)): Add in C++0x mode, use the latter. * include/bits/list.tcc (list<>::resize, _M_default_append): Define. * include/bits/stl_vector.h (vector<>::_M_default_initialize, _M_default_append): Declare. (vector<>::vector(size_type), resize(size_type)): Add in C++0x mode, use the latter. * include/bits/vector.tcc (vector<>::_M_default_append): Define. * include/bits/stl_deque.h (deque<>::_M_default_initialize, _M_default_append): Declare. (deque<>::deque(size_type), resize(size_type)): Add in C++0x mode, use the latter. * include/bits/deque.tcc (deque<>::_M_default_append): Define. * include/debug/vector: Update. * include/debug/deque: Likewise. * include/debug/list: Likewise. * include/profile/vector: Likewise. * include/profile/deque: Likewise. * include/profile/list: Likewise. * include/bits/forward_list.h (_M_default_initialize, _M_default_insert_after): Declare. (forward_list<>::forward_list(size_type), resize(size_type)): Fix, use the latter. * include/bits/forward_list.tcc (forward_list<>::_M_default_append, _M_default_insert_after): Define. * testsuite/util/testsuite_api.h (NonCopyConstructible): Add. * testsuite/23_containers/forward_list/modifiers/6.cc: Move to... * testsuite/23_containers/forward_list/capacity/resize_size.cc: ... here. * testsuite/23_containers/forward_list/cons/10.cc: Move to... * testsuite/23_containers/forward_list/cons/cons_size.cc: ... here. * testsuite/23_containers/vector/resize/1.cc: Move to... * testsuite/23_containers/vector/capacity/resize/1.cc: ... here. * testsuite/23_containers/vector/resize/moveable.cc: Move to... * testsuite/23_containers/vector/resize/capacity/moveable.cc: ... here. * testsuite/23_containers/vector/cons/cons_size.cc: New. * testsuite/23_containers/vector/capacity/resize/resize_size.cc: Likewise. * testsuite/23_containers/deque/cons/cons_size.cc: Likewise. * testsuite/23_containers/deque/capacity/resize_size.cc: Likewise. * testsuite/23_containers/list/cons/cons_size.cc: Likewise. * testsuite/23_containers/list/capacity/resize_size.cc: Likewise. * testsuite/23_containers/vector/capacity/resize/moveable.cc: Adjust. * testsuite/23_containers/deque/capacity/moveable.cc: Likewise. * testsuite/23_containers/forward_list/requirements/dr438/ assign_neg.cc: Adjust dg-error line numbers. * testsuite/23_containers/forward_list/requirements/dr438/ insert_neg.cc: Likewise. * testsuite/23_containers/forward_list/requirements/dr438/ constructor_1_neg.cc: Likewise. * testsuite/23_containers/forward_list/requirements/dr438/ constructor_2_neg.cc: Likewise. * testsuite/23_containers/vector/requirements/dr438/ assign_neg.cc: Likewise. * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: Likewise. * testsuite/23_containers/vector/requirements/dr438/ constructor_1_neg.cc: Likewise. * testsuite/23_containers/vector/requirements/dr438/ constructor_2_neg.cc: Likewise. * testsuite/23_containers/deque/requirements/dr438/ assign_neg.cc: Likewise. * testsuite/23_containers/deque/requirements/dr438/insert_neg.cc: Likewise. * testsuite/23_containers/deque/requirements/dr438/ constructor_1_neg.cc: Likewise. * testsuite/23_containers/deque/requirements/dr438/ constructor_2_neg.cc: Likewise. * testsuite/23_containers/list/requirements/dr438/assign_neg.cc: Likewise. * testsuite/23_containers/list/requirements/dr438/insert_neg.cc: Likewise. * testsuite/23_containers/list/requirements/dr438/ constructor_1_neg.cc: Likewise. * testsuite/23_containers/list/requirements/dr438/ constructor_2_neg.cc: Likewise. Added: trunk/libstdc++-v3/testsuite/23_containers/deque/capacity/resize_size.cc trunk/libstdc++-v3/testsuite/23_containers/deque/cons/cons_size.cc trunk/libstdc++-v3/testsuite/23_containers/forward_list/capacity/resize_size.cc - copied, changed from r160898, trunk/libstdc++-v3/testsuite/23_containers/forward_list/modifiers/6.cc trunk/libstdc++-v3/testsuite/23_containers/forward_list/cons/cons_size.cc - copied, changed from r160898, trunk/libstdc++-v3/testsuite/23_containers/forward_list/cons/10.cc trunk/libstdc++-v3/testsuite/23_containers/list/capacity/resize_size.cc trunk/libstdc++-v3/testsuite/23_containers/list/cons/cons_size.cc trunk/libstdc++-v3/testsuite/23_containers/vector/capacity/resize/ - copied from r160967, trunk/libstdc++-v3/testsuite/23_containers/vector/resize/ trunk/libstdc++-v3/testsuite/23_containers/vector/capacity/resize/resize_size.cc trunk/libstdc++-v3/testsuite/23_containers/vector/cons/cons_size.cc Removed: trunk/libstdc++-v3/testsuite/23_containers/forward_list/cons/10.cc trunk/libstdc++-v3/testsuite/23_containers/forward_list/modifiers/6.cc trunk/libstdc++-v3/testsuite/23_containers/vector/resize/ Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/bits/deque.tcc trunk/libstdc++-v3/include/bits/forward_list.h trunk/libstdc++-v3/include/bits/forward_list.tcc trunk/libstdc++-v3/include/bits/list.tcc trunk/libstdc++-v3/include/bits/stl_deque.h trunk/libstdc++-v3/include/bits/stl_list.h trunk/libstdc++-v3/include/bits/stl_vector.h trunk/libstdc++-v3/include/bits/vector.tcc trunk/libstdc++-v3/include/debug/deque trunk/libstdc++-v3/include/debug/list trunk/libstdc++-v3/include/debug/vector trunk/libstdc++-v3/include/profile/deque trunk/libstdc++-v3/include/profile/list trunk/libstdc++-v3/include/profile/vector trunk/libstdc++-v3/testsuite/23_containers/deque/capacity/moveable.cc trunk/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/assign_neg.cc trunk/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_1_neg.cc trunk/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/constructor_2_neg.cc trunk/libstdc++-v3/testsuite/23_containers/deque/requirements/dr438/insert_neg.cc trunk/libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/assign_neg.cc trunk/libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_1_neg.cc trunk/libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_2_neg.cc trunk/libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/insert_neg.cc trunk/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/assign_neg.cc trunk/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_1_neg.cc trunk/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/constructor_2_neg.cc trunk/libstdc++-v3/testsuite/23_containers/list/requirements/dr438/insert_neg.cc trunk/libstdc++-v3/testsuite/23_containers/vector/capacity/resize/moveable.cc trunk/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc trunk/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc trunk/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc trunk/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc trunk/libstdc++-v3/testsuite/util/testsuite_api.h -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32618