From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10080 invoked by alias); 27 Jan 2015 17:06:02 -0000 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 Received: (qmail 9892 invoked by uid 48); 27 Jan 2015 17:05:56 -0000 From: "redi at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug libstdc++/64814] std::copy_n advances InputIterator one *less* time than necessary. Date: Tue, 27 Jan 2015 17:06:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: libstdc++ X-Bugzilla-Version: 4.9.2 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: redi at gcc dot gnu.org X-Bugzilla-Status: RESOLVED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_status resolution Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-01/txt/msg03110.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64814 Jonathan Wakely changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #7 from Jonathan Wakely --- (In reply to Anquietas from comment #5) > "Effects: For each non-negative integer i < n, performs *(result + i) = > *(first + i)." > Since it's talking about input iterators where (first + n) isn't valid I See 25.1 [algorithms.general] p12. > think we can interpret this as n applications each of ++first and *first. No, i < n so (first+n) is not needed and only n-1 applications of ++first are required. It is unspecified whether the algorithm increments the iterator again after the last write, but at least two implementations do not perform that final increment. So I'm closing this as not a bug. If http://cplusplus.github.io/LWG/lwg-active.html#2242 becomes a defect and changes something we will make whatever change is needed, but I don't think we have a bug now in libstdc++.