aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marchi <simon.marchi@efficios.com>2023-11-02 23:19:09 -0400
committerSimon Marchi <simon.marchi@efficios.com>2023-11-03 14:27:26 -0400
commit8cb2c7fc2ea4b40494b9be0f446bfbb2e52e057d (patch)
tree73e59f17c0e01f14c6978310cd5acac5dc934ffb
parentdbbfabb441556497f3ee9d89cf74bdc4a7a4c83c (diff)
downloadgdb-8cb2c7fc2ea4b40494b9be0f446bfbb2e52e057d.zip
gdb-8cb2c7fc2ea4b40494b9be0f446bfbb2e52e057d.tar.gz
gdb-8cb2c7fc2ea4b40494b9be0f446bfbb2e52e057d.tar.bz2
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 <tom@tromey.com>
-rw-r--r--gdbsupport/array-view.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/gdbsupport/array-view.h b/gdbsupport/array-view.h
index ee3a3c5..4b51911 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<T> 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<T> slice (size_type start) const noexcept
{
#if defined(_GLIBCXX_DEBUG) && __cplusplus >= 201402L