From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id F3CE93858020; Fri, 2 Feb 2024 10:27:44 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org F3CE93858020 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1706869665; bh=O4zTNF5L8vx1y2pKCAMPm4yj4T6+95F1EbykyrU4DdU=; h=From:To:Subject:Date:In-Reply-To:References:From; b=O+HJudWayLO81N7ktcZkAkTQeYZWdH4vDfAkroqNNvRWTupRBJePz2hXXyUFLaiJR AnJYkXnS4RJKAtuKETMCQkH592uzw7Ag6NUsAzz26CqPww2A5ZOgGNE+FnCdq9hehj g53xTefhXgpvJu5ZAqekQvwi/+UUrKMfeEhc5kAg= From: "cvs-commit at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug libstdc++/90276] PSTL tests fail in Debug Mode Date: Fri, 02 Feb 2024 10:27:40 +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: 9.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: cvs-commit at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: redi at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D90276 --- Comment #11 from GCC Commits --- The master branch has been updated by Jonathan Wakely : https://gcc.gnu.org/g:723a7c1ad29523b9ddff53c7b147bffea56fbb63 commit r14-8743-g723a7c1ad29523b9ddff53c7b147bffea56fbb63 Author: Jonathan Wakely Date: Wed Jan 31 10:41:49 2024 +0000 libstdc++: Avoid reusing moved-from iterators in PSTL tests [PR90276] The reverse_invoker utility for PSTL tests uses forwarding references f= or all parameters, but some of those parameters get forwarded to move constructors which then leave the objects in a moved-from state. When the parameters are forwarded a second time that results in making new copies of moved-from iterators. For libstdc++ debug mode iterators, the moved-from state is singular, which means copying them will abort at runtime. The fix is to make copies of iterator arguments instead of forwarding them. The callers of reverse_invoker::operator() also forward the iterators multiple times, but that's OK because reverse_invoker accepts them by forwarding reference but then breaks the chain of forwarding and copies them as lvalues. libstdc++-v3/ChangeLog: PR libstdc++/90276 * testsuite/util/pstl/test_utils.h (reverse_invoker): Do not use perfect forwarding for iterator arguments. --- Comment #12 from GCC Commits --- The master branch has been updated by Jonathan Wakely : https://gcc.gnu.org/g:a6286584e5536d1853a851b8c2ac3196956e3068 commit r14-8744-ga6286584e5536d1853a851b8c2ac3196956e3068 Author: Jonathan Wakely Date: Thu Feb 1 10:06:15 2024 +0000 libstdc++: Fix invalid order in PSTL inplace_merge test [PR90276] This looks like a typo in the upstream test that causes a failure in debug mode. It has been reported upstream. libstdc++-v3/ChangeLog: PR libstdc++/90276 * testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc: Fix comparison function to use less-than instead of equality.=