From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32433 invoked by alias); 25 Feb 2010 23:52:13 -0000 Received: (qmail 32209 invoked by uid 48); 25 Feb 2010 23:51:49 -0000 Date: Thu, 25 Feb 2010 23:52:00 -0000 Subject: [Bug libstdc++/43183] New: std::unique_ptr::reset() does not conform to N3035. X-Bugzilla-Reason: CC Message-ID: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "tjgolubi at netins dot net" 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-02/txt/msg02626.txt.bz2 Reference N3035 20.9.10.2.5 para 5. Ensure all specializations are fixed. This is what is there now: void reset(pointer __p = pointer()) { if (__p != get()) { get_deleter()(get()); std::get<0>(_M_t) = __p; } } This is what it should be changed to: void reset(pointer __p = pointer()) { pointer old_p = get(); if (__p != old_p) { std::get<0>(_M_t) = __p; get_deleter()(old_p); } } -- Summary: std::unique_ptr::reset() does not conform to N3035. Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: tjgolubi at netins dot net http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43183