Hi Jonathan, On Wed, Aug 4, 2021 at 2:04 PM Jonathan Wakely via Gcc-patches < gcc-patches@gcc.gnu.org> wrote:
> On 04/08/21 12:56 +0100, Jonathan Wakely wrote: > >... and container adaptors. > > > >This adds the [[nodiscard]] attribute to functions with no side-effects > >for the sequence containers and their iterators, and the debug versions > >of those containers, and the container adaptors, > > I don't plan to add any more [[nodiscard]] attributes for now, but > these two commits should demonstrate how to do it for anybody who > wants to contribute similar patches. > > I didn't add tests that verify we do actually warn on each of those > functions, because there are hundreds of them, and I know they're > working because I had to alter existing tests to not warn. > > I've noticed a regression on aarch64/arm: FAIL: g++.old-deja/g++.other/inline7.C -std=gnu++17 (test for excess errors) Excess errors: /gcc/testsuite/g++.old-deja/g++.other/inline7.C:11:11: warning: ignoring return value of 'std::__cxx11::list<_Tp, _Alloc>::size_type std::__cxx11::list<_Tp, _Alloc>::size() const [with _Tp = int*; _Alloc = std::allocator<int*>; std::__cxx11::list<_Tp, _Alloc>::size_type = long unsigned int]', declared with attribute 'nodiscard' [-Wunused-result] FAIL: g++.old-deja/g++.other/inline7.C -std=gnu++2a (test for excess errors) Excess errors: /gcc/testsuite/g++.old-deja/g++.other/inline7.C:11:11: warning: ignoring return value of 'std::__cxx11::list<_Tp, _Alloc>::size_type std::__cxx11::list<_Tp, _Alloc>::size() const [with _Tp = int*; _Alloc = std::allocator<int*>; std::__cxx11::list<_Tp, _Alloc>::size_type = long unsigned int]', declared with attribute 'nodiscard' [-Wunused-result] Not sure why you didn't see it? Christophe