From: Simon Marchi Date: Fri, 3 Nov 2023 03:19:09 +0000 (-0400) Subject: gdbsupport: mark array_view::slice with [[nodiscard]] X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8cb2c7fc2ea4b40494b9be0f446bfbb2e52e057d;p=binutils-gdb.git gdbsupport: mark array_view::slice with [[nodiscard]] I (almost) had a bug where I did: buffer.slice (...) but I meant: buffer = buffer.slice (...) The first one does nothing, it creates a new array_view but without using it, it's useless. Mark the slice methods with [[nodiscard]] (which is standard C++17) so that error would generate a warning. I guess that many functions could be marked as nodiscard, essentially function that is pure (doesn't have side-effects). But this one seems particularly easy to mis-use. Change-Id: Ib39a0a65a5728a3cfd68a02ae31635810baeaccb Approved-By: Tom Tromey --- diff --git a/gdbsupport/array-view.h b/gdbsupport/array-view.h index ee3a3c58710..4b519112e78 100644 --- a/gdbsupport/array-view.h +++ b/gdbsupport/array-view.h @@ -185,6 +185,7 @@ public: /* Slice an array view. */ /* Return a new array view over SIZE elements starting at START. */ + [[nodiscard]] constexpr array_view slice (size_type start, size_type size) const noexcept { #if defined(_GLIBCXX_DEBUG) && __cplusplus >= 201402L @@ -195,6 +196,7 @@ public: /* Return a new array view over all the elements after START, inclusive. */ + [[nodiscard]] constexpr array_view slice (size_type start) const noexcept { #if defined(_GLIBCXX_DEBUG) && __cplusplus >= 201402L