From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2181) id 73C723858C52; Fri, 23 Sep 2022 14:15:03 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 73C723858C52 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1663942503; bh=/3K51TOZoUatmG6vRqZGfOHWKzYaLWjMTMWGjeo5o6c=; h=From:To:Subject:Date:From; b=X9768k71rZOu0WD8f70AnhshN5SJCpw4oB7WORgevfwMGQ5FQXVZ1oJjw3v2ajAQl FMFIWuk2xhRzK9TlxVOjX7Oi9v7yj84WC9PS5/92EGRiPwMmkhcSgsHDHG0rSGWy1r 1JZFnfiF7xhTMn7TQgif+BMe/Y3iurIyxJ+zB2nY= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Jonathan Wakely To: gcc-cvs@gcc.gnu.org, libstdc++-cvs@gcc.gnu.org Subject: [gcc r13-2818] libstdc++: Micro-optimizaion for std::bitset stream extraction X-Act-Checkin: gcc X-Git-Author: Jonathan Wakely X-Git-Refname: refs/heads/master X-Git-Oldrev: af611afe5fcc908a6678b5b205fb5af7d64fbcb2 X-Git-Newrev: ab98b4c0725eb7c0f03d319ef3e22ae761b2698a Message-Id: <20220923141503.73C723858C52@sourceware.org> Date: Fri, 23 Sep 2022 14:15:03 +0000 (GMT) List-Id: https://gcc.gnu.org/g:ab98b4c0725eb7c0f03d319ef3e22ae761b2698a commit r13-2818-gab98b4c0725eb7c0f03d319ef3e22ae761b2698a Author: Jonathan Wakely Date: Fri Sep 23 13:39:31 2022 +0100 libstdc++: Micro-optimizaion for std::bitset stream extraction Don't bother trying to copy any characters for bitset<0>. libstdc++-v3/ChangeLog: * include/std/bitset (operator>>): Do not copy for N==0. * testsuite/20_util/bitset/io/input.cc: Add comment. Diff: --- libstdc++-v3/include/std/bitset | 2 +- libstdc++-v3/testsuite/20_util/bitset/io/input.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libstdc++-v3/include/std/bitset b/libstdc++-v3/include/std/bitset index 83c6416b770..6dbc58c6429 100644 --- a/libstdc++-v3/include/std/bitset +++ b/libstdc++-v3/include/std/bitset @@ -1615,7 +1615,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER if (__tmp.empty() && _Nb) __state |= __ios_base::failbit; - else + else if _GLIBCXX17_CONSTEXPR (_Nb) __x._M_copy_from_string(__tmp, static_cast(0), _Nb, __zero, __one); if (__state) diff --git a/libstdc++-v3/testsuite/20_util/bitset/io/input.cc b/libstdc++-v3/testsuite/20_util/bitset/io/input.cc index 939861b171e..0f22cefbb5b 100644 --- a/libstdc++-v3/testsuite/20_util/bitset/io/input.cc +++ b/libstdc++-v3/testsuite/20_util/bitset/io/input.cc @@ -39,7 +39,7 @@ void test01() ss.clear(); ss.str("*"); ss >> b0; - VERIFY( ss.rdstate() == ios_base::goodbit ); + VERIFY( ss.rdstate() == ios_base::goodbit ); // LWG 3199 } int main()