From 820ed8af6a757408873d8955a2db03b0989fdaeb Mon Sep 17 00:00:00 2001 From: Andrew Burgess Date: Mon, 21 Feb 2022 14:07:45 +0000 Subject: gdb: add operator+= and operator+ overload for std::string This commit adds operator+= and operator+ overloads for adding gdb::unique_xmalloc_ptr to a std::string. I could only find 3 places in GDB where this was useful right now, and these all make use of operator+=. I've also added a self test for gdb::unique_xmalloc_ptr, which makes use of both operator+= and operator+, so they are both getting used/tested. There should be no user visible changes after this commit, except when running 'maint selftest', where the new self test is visible. --- gdbsupport/gdb_unique_ptr.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'gdbsupport/gdb_unique_ptr.h') diff --git a/gdbsupport/gdb_unique_ptr.h b/gdbsupport/gdb_unique_ptr.h index d8a87a3..51ee7a4 100644 --- a/gdbsupport/gdb_unique_ptr.h +++ b/gdbsupport/gdb_unique_ptr.h @@ -21,6 +21,7 @@ #define COMMON_GDB_UNIQUE_PTR_H #include +#include #include "gdbsupport/gdb-xfree.h" namespace gdb @@ -74,4 +75,22 @@ make_unique_xstrndup (const char *str, size_t n) return gdb::unique_xmalloc_ptr (xstrndup (str, n)); } +/* An overload of operator+= fo adding gdb::unique_xmalloc_ptr to a + std::string. */ + +static inline std::string & +operator+= (std::string &lhs, const gdb::unique_xmalloc_ptr &rhs) +{ + return lhs += rhs.get (); +} + +/* An overload of operator+ for adding gdb::unique_xmalloc_ptr to a + std::string. */ + +static inline std::string +operator+ (const std::string &lhs, const gdb::unique_xmalloc_ptr &rhs) +{ + return lhs + rhs.get (); +} + #endif /* COMMON_GDB_UNIQUE_PTR_H */ -- cgit v1.1