From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 8682B385840A; Thu, 11 Nov 2021 14:04:20 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8682B385840A From: "redi at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug libstdc++/103191] New: vector doesn't have any checks enabled by _GLIBCXX_ASSERTIONS Date: Thu, 11 Nov 2021 14:04:20 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: libstdc++ X-Bugzilla-Version: 12.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: enhancement X-Bugzilla-Who: redi at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: 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_id short_desc product version bug_status bug_severity priority component assigned_to reporter target_milestone Message-ID: 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 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Nov 2021 14:04:20 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D103191 Bug ID: 103191 Summary: vector doesn't have any checks enabled by _GLIBCXX_ASSERTIONS Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org Target Milestone: --- We should consider this change: diff --git a/libstdc++-v3/include/bits/stl_bvector.h b/libstdc++-v3/include/bits/stl_bvector.h index 1425877a5ea..32e22f5a056 100644 --- a/libstdc++-v3/include/bits/stl_bvector.h +++ b/libstdc++-v3/include/bits/stl_bvector.h @@ -1057,12 +1057,18 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR reference operator[](size_type __n) - { return begin()[__n]; } + { + __glibcxx_requires_subscript(__n); + return begin()[__n]; + } _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR const_reference operator[](size_type __n) const - { return begin()[__n]; } + { + __glibcxx_requires_subscript(__n); + return begin()[__n]; + } protected: _GLIBCXX20_CONSTEXPR @@ -1106,22 +1112,34 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR reference front() - { return *begin(); } + { + __glibcxx_requires_nonempty(); + return *begin(); + } _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR const_reference front() const - { return *begin(); } + { + __glibcxx_requires_nonempty(); + return *begin(); + } _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR reference back() - { return *(end() - 1); } + { + __glibcxx_requires_nonempty(); + return *(end() - 1); + } _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR const_reference back() const - { return *(end() - 1); } + { + __glibcxx_requires_nonempty(); + return *(end() - 1); + } // _GLIBCXX_RESOLVE_LIB_DEFECTS // DR 464. Suggestion for new member functions in standard container= s.=