From: Lancelot Six <lancelot.six@amd.com>
To: <gdb-patches@sourceware.org>
Cc: Lancelot Six <lancelot.six@amd.com>
Subject: [PATCH 03/11] gdb: Use C++17's std::make_unique instead of gdb::make_unique
Date: Fri, 13 Oct 2023 14:44:10 +0000 [thread overview]
Message-ID: <20231013144418.3180617-4-lancelot.six@amd.com> (raw)
In-Reply-To: <20231013144418.3180617-1-lancelot.six@amd.com>
gdb::make_unique is a wrapper around std::make_unique when compiled with
C++17. Now that C++17 is required, use std::make_unique directly in the
codebase, and remove gdb::make_unique.
Change-Id: I80b615e46e4b7c097f09d78e579a9bdce00254ab
---
gdb/addrmap.c | 3 ++-
gdb/break-catch-load.c | 3 ++-
gdb/compile/compile-c-support.c | 3 ++-
gdb/cp-name-parser.y | 3 ++-
gdb/cp-support.c | 3 ++-
gdb/dwarf2/frame.c | 3 ++-
gdb/dwarf2/read-debug-names.c | 3 ++-
gdb/dwarf2/read-gdb-index.c | 3 ++-
gdb/dwarf2/read.c | 3 ++-
gdb/gdb_bfd.c | 2 +-
gdb/gdbtypes.c | 3 ++-
gdb/mi/mi-main.c | 3 ++-
gdb/mi/mi-out.c | 7 ++++---
gdb/nat/linux-btrace.c | 5 +++--
gdb/python/py-mi.c | 3 ++-
gdb/python/py-varobj.c | 3 ++-
gdb/ui-out.c | 4 ++--
gdb/unittests/parallel-for-selftests.c | 5 +++--
gdb/varobj.c | 3 ++-
gdbsupport/gdb_unique_ptr.h | 13 -------------
20 files changed, 41 insertions(+), 37 deletions(-)
diff --git a/gdb/addrmap.c b/gdb/addrmap.c
index d16775d49d4..757947abaf4 100644
--- a/gdb/addrmap.c
+++ b/gdb/addrmap.c
@@ -21,6 +21,7 @@
#include "gdbsupport/gdb_obstack.h"
#include "addrmap.h"
#include "gdbsupport/selftest.h"
+#include <memory>
/* Make sure splay trees can actually hold the values we want to
store in them. */
@@ -428,7 +429,7 @@ test_addrmap ()
/* Create mutable addrmap. */
auto_obstack temp_obstack;
- auto map = gdb::make_unique<struct addrmap_mutable> ();
+ auto map = std::make_unique<struct addrmap_mutable> ();
SELF_CHECK (map != nullptr);
/* Check initial state. */
diff --git a/gdb/break-catch-load.c b/gdb/break-catch-load.c
index 94d8b420d32..cac914d3fac 100644
--- a/gdb/break-catch-load.c
+++ b/gdb/break-catch-load.c
@@ -28,6 +28,7 @@
#include "solist.h"
#include "target.h"
#include "valprint.h"
+#include <memory>
/* An instance of this type is used to represent an solib catchpoint.
A breakpoint is really of this type iff its ops pointer points to
@@ -230,7 +231,7 @@ add_solib_catchpoint (const char *arg, bool is_load, bool is_temp, bool enabled)
if (*arg == '\0')
arg = nullptr;
- auto c = gdb::make_unique<solib_catchpoint> (gdbarch, is_temp, nullptr,
+ auto c = std::make_unique<solib_catchpoint> (gdbarch, is_temp, nullptr,
is_load, arg);
c->enable_state = enabled ? bp_enabled : bp_disabled;
diff --git a/gdb/compile/compile-c-support.c b/gdb/compile/compile-c-support.c
index 53b7285b366..20a7bb4e0d4 100644
--- a/gdb/compile/compile-c-support.c
+++ b/gdb/compile/compile-c-support.c
@@ -30,6 +30,7 @@
#include "gdbsupport/gdb-dlfcn.h"
#include "gdbsupport/preprocessor.h"
#include "gdbarch.h"
+#include <memory>
/* See compile-internal.h. */
@@ -118,7 +119,7 @@ get_compile_context (const char *fe_libcc, const char *fe_context,
error (_("The loaded version of GCC does not support the required version "
"of the API."));
- return gdb::make_unique<INSTTYPE> (context);
+ return std::make_unique<INSTTYPE> (context);
}
/* A C-language implementation of get_compile_context. */
diff --git a/gdb/cp-name-parser.y b/gdb/cp-name-parser.y
index 324166a03ff..061882363be 100644
--- a/gdb/cp-name-parser.y
+++ b/gdb/cp-name-parser.y
@@ -45,6 +45,7 @@
#include "cp-support.h"
#include "c-support.h"
#include "parser-defs.h"
+#include <memory>
#define GDB_YY_REMAP_PREFIX cpname
#include "yy-remap.h"
@@ -2038,7 +2039,7 @@ cp_demangled_name_to_comp (const char *demangled_name,
state.demangle_info = allocate_info ();
- auto result = gdb::make_unique<demangle_parse_info> ();
+ auto result = std::make_unique<demangle_parse_info> ();
result->info = state.demangle_info;
if (yyparse (&state))
diff --git a/gdb/cp-support.c b/gdb/cp-support.c
index e02e859b99a..579f09303c8 100644
--- a/gdb/cp-support.c
+++ b/gdb/cp-support.c
@@ -44,6 +44,7 @@
#include "run-on-main-thread.h"
#include "typeprint.h"
#include "inferior.h"
+#include <memory>
#define d_left(dc) (dc)->u.s_binary.left
#define d_right(dc) (dc)->u.s_binary.right
@@ -675,7 +676,7 @@ mangled_name_to_comp (const char *mangled_name, int options,
options, memory);
if (ret)
{
- auto info = gdb::make_unique<demangle_parse_info> ();
+ auto info = std::make_unique<demangle_parse_info> ();
info->tree = ret;
*demangled_p = NULL;
return info;
diff --git a/gdb/dwarf2/frame.c b/gdb/dwarf2/frame.c
index abc8d613482..6f52a1abe0e 100644
--- a/gdb/dwarf2/frame.c
+++ b/gdb/dwarf2/frame.c
@@ -49,6 +49,7 @@
#include <unordered_map>
#include <algorithm>
+#include <memory>
struct comp_unit;
@@ -2126,7 +2127,7 @@ dwarf2_build_frame_info (struct objfile *objfile)
struct gdbarch *gdbarch = objfile->arch ();
/* Build a minimal decoding of the DWARF2 compilation unit. */
- auto unit = gdb::make_unique<comp_unit> (objfile);
+ auto unit = std::make_unique<comp_unit> (objfile);
if (objfile->separate_debug_objfile_backlink == NULL)
{
diff --git a/gdb/dwarf2/read-debug-names.c b/gdb/dwarf2/read-debug-names.c
index 2e5067efb3d..535028b1597 100644
--- a/gdb/dwarf2/read-debug-names.c
+++ b/gdb/dwarf2/read-debug-names.c
@@ -26,6 +26,7 @@
#include "mapped-index.h"
#include "read.h"
#include "stringify.h"
+#include <memory>
/* A description of the mapped .debug_names.
Uninitialized map has CU_COUNT 0. */
@@ -462,7 +463,7 @@ create_cus_from_debug_names (dwarf2_per_bfd *per_bfd,
bool
dwarf2_read_debug_names (dwarf2_per_objfile *per_objfile)
{
- auto map = gdb::make_unique<mapped_debug_names> ();
+ auto map = std::make_unique<mapped_debug_names> ();
mapped_debug_names dwz_map;
struct objfile *objfile = per_objfile->objfile;
dwarf2_per_bfd *per_bfd = per_objfile->per_bfd;
diff --git a/gdb/dwarf2/read-gdb-index.c b/gdb/dwarf2/read-gdb-index.c
index b96eaa96e23..da3bf0633fc 100644
--- a/gdb/dwarf2/read-gdb-index.c
+++ b/gdb/dwarf2/read-gdb-index.c
@@ -27,6 +27,7 @@
#include "gdbsupport/gdb-checked-static-cast.h"
#include "mapped-index.h"
#include "read.h"
+#include <memory>
/* When true, do not reject deprecated .gdb_index sections. */
static bool use_deprecated_index_sections = false;
@@ -828,7 +829,7 @@ dwarf2_read_gdb_index
if (main_index_contents.empty ())
return 0;
- auto map = gdb::make_unique<mapped_gdb_index> ();
+ auto map = std::make_unique<mapped_gdb_index> ();
if (!read_gdb_index_from_buffer (objfile_name (objfile),
use_deprecated_index_sections,
main_index_contents, map.get (), &cu_list,
diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c
index d4aec19d31d..5bbf208ed5a 100644
--- a/gdb/dwarf2/read.c
+++ b/gdb/dwarf2/read.c
@@ -95,6 +95,7 @@
#include "split-name.h"
#include "gdbsupport/parallel-for.h"
#include "gdbsupport/thread-pool.h"
+#include <memory>
/* When == 1, print basic high level tracing messages.
When > 1, be more verbose.
@@ -4535,7 +4536,7 @@ allocate_type_unit_groups_table ()
static std::unique_ptr<type_unit_group>
create_type_unit_group (struct dwarf2_cu *cu, sect_offset line_offset_struct)
{
- auto tu_group = gdb::make_unique<type_unit_group> ();
+ auto tu_group = std::make_unique<type_unit_group> ();
tu_group->hash.dwo_unit = cu->dwo_unit;
tu_group->hash.line_sect_off = line_offset_struct;
diff --git a/gdb/gdb_bfd.c b/gdb/gdb_bfd.c
index 217753cf914..fc0c5bab6ed 100644
--- a/gdb/gdb_bfd.c
+++ b/gdb/gdb_bfd.c
@@ -302,7 +302,7 @@ gdb_bfd_open_from_target_memory (CORE_ADDR addr, ULONGEST size,
const char *target)
{
std::unique_ptr<target_buffer> buffer
- = gdb::make_unique<target_buffer> (addr, size);
+ = std::make_unique<target_buffer> (addr, size);
return gdb_bfd_openr_iovec (buffer->filename (), target,
[&] (bfd *nbfd)
diff --git a/gdb/gdbtypes.c b/gdb/gdbtypes.c
index 7011fddd695..534b7a2bfa2 100644
--- a/gdb/gdbtypes.c
+++ b/gdb/gdbtypes.c
@@ -45,6 +45,7 @@
#include "gmp-utils.h"
#include "rust-lang.h"
#include "ada-lang.h"
+#include <memory>
/* The value of an invalid conversion badness. */
#define INVALID_CONVERSION 100
@@ -5833,7 +5834,7 @@ static const struct registry<objfile>::key<fixed_point_type_storage>
void
allocate_fixed_point_type_info (struct type *type)
{
- auto up = gdb::make_unique<fixed_point_type_info> ();
+ auto up = std::make_unique<fixed_point_type_info> ();
fixed_point_type_info *info;
if (type->is_objfile_owned ())
diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c
index 944c9116731..d750371f917 100644
--- a/gdb/mi/mi-main.c
+++ b/gdb/mi/mi-main.c
@@ -63,6 +63,7 @@
#include <algorithm>
#include <set>
#include <map>
+#include <memory>
enum
{
@@ -1933,7 +1934,7 @@ mi_execute_command (const char *cmd, int from_tty)
= gdb::checked_static_cast<mi_interp *> (command_interp ());
try
{
- command = gdb::make_unique<mi_parse> (cmd, &token);
+ command = std::make_unique<mi_parse> (cmd, &token);
}
catch (const gdb_exception &exception)
{
diff --git a/gdb/mi/mi-out.c b/gdb/mi/mi-out.c
index bbd21287b28..95f8069674c 100644
--- a/gdb/mi/mi-out.c
+++ b/gdb/mi/mi-out.c
@@ -23,6 +23,7 @@
#include "mi-out.h"
#include <vector>
+#include <memory>
#include "interps.h"
#include "ui-out.h"
@@ -340,13 +341,13 @@ std::unique_ptr<mi_ui_out>
mi_out_new (const char *mi_version)
{
if (streq (mi_version, INTERP_MI4) || streq (mi_version, INTERP_MI))
- return gdb::make_unique<mi_ui_out> (4);
+ return std::make_unique<mi_ui_out> (4);
if (streq (mi_version, INTERP_MI3))
- return gdb::make_unique<mi_ui_out> (3);
+ return std::make_unique<mi_ui_out> (3);
if (streq (mi_version, INTERP_MI2))
- return gdb::make_unique<mi_ui_out> (2);
+ return std::make_unique<mi_ui_out> (2);
return nullptr;
}
diff --git a/gdb/nat/linux-btrace.c b/gdb/nat/linux-btrace.c
index 3c217daa488..aa02f193399 100644
--- a/gdb/nat/linux-btrace.c
+++ b/gdb/nat/linux-btrace.c
@@ -27,6 +27,7 @@
#include "gdbsupport/filestuff.h"
#include "gdbsupport/scoped_fd.h"
#include "gdbsupport/scoped_mmap.h"
+#include <memory>
#include <inttypes.h>
@@ -468,7 +469,7 @@ linux_enable_bts (ptid_t ptid, const struct btrace_config_bts *conf)
error (_("BTS support has been disabled for the target cpu."));
std::unique_ptr<linux_btrace_target_info> tinfo
- { gdb::make_unique<linux_btrace_target_info> (ptid) };
+ { std::make_unique<linux_btrace_target_info> (ptid) };
tinfo->conf.format = BTRACE_FORMAT_BTS;
@@ -617,7 +618,7 @@ linux_enable_pt (ptid_t ptid, const struct btrace_config_pt *conf)
pid = ptid.pid ();
std::unique_ptr<linux_btrace_target_info> tinfo
- { gdb::make_unique<linux_btrace_target_info> (ptid) };
+ { std::make_unique<linux_btrace_target_info> (ptid) };
tinfo->conf.format = BTRACE_FORMAT_PT;
diff --git a/gdb/python/py-mi.c b/gdb/python/py-mi.c
index a7b4f4fa3cf..a43fac98c43 100644
--- a/gdb/python/py-mi.c
+++ b/gdb/python/py-mi.c
@@ -27,6 +27,7 @@
#include "mi/mi-parse.h"
#include "mi/mi-console.h"
#include "mi/mi-interp.h"
+#include <memory>
/* A ui_out subclass that creates a Python object based on the data
that is passed in. */
@@ -290,7 +291,7 @@ gdbpy_execute_mi_command (PyObject *self, PyObject *args, PyObject *kw)
try
{
scoped_restore save_uiout = make_scoped_restore (¤t_uiout, &uiout);
- auto parser = gdb::make_unique<mi_parse> (std::move (mi_command),
+ auto parser = std::make_unique<mi_parse> (std::move (mi_command),
std::move (arg_strings));
mi_execute_command (parser.get ());
}
diff --git a/gdb/python/py-varobj.c b/gdb/python/py-varobj.c
index 98603cec009..f72f1400d1d 100644
--- a/gdb/python/py-varobj.c
+++ b/gdb/python/py-varobj.c
@@ -18,6 +18,7 @@
#include "varobj.h"
#include "varobj-iter.h"
#include "valprint.h"
+#include <memory>
/* A dynamic varobj iterator "class" for python pretty-printed
varobjs. This inherits struct varobj_iter. */
@@ -170,5 +171,5 @@ py_varobj_get_iterator (struct varobj *var, PyObject *printer,
error (_("Could not get children iterator"));
}
- return gdb::make_unique<py_varobj_iter> (var, std::move (iter), opts);
+ return std::make_unique<py_varobj_iter> (var, std::move (iter), opts);
}
diff --git a/gdb/ui-out.c b/gdb/ui-out.c
index defa8f9dfa4..e8653c6c127 100644
--- a/gdb/ui-out.c
+++ b/gdb/ui-out.c
@@ -236,7 +236,7 @@ void ui_out_table::append_header (int width, ui_align alignment,
internal_error (_("table header must be specified after table_begin and "
"before table_body."));
- auto header = gdb::make_unique<ui_out_hdr> (m_headers.size () + 1,
+ auto header = std::make_unique<ui_out_hdr> (m_headers.size () + 1,
width, alignment,
col_name, col_hdr);
@@ -328,7 +328,7 @@ ui_out::current_level () const
void
ui_out::push_level (ui_out_type type)
{
- auto level = gdb::make_unique<ui_out_level> (type);
+ auto level = std::make_unique<ui_out_level> (type);
m_levels.push_back (std::move (level));
}
diff --git a/gdb/unittests/parallel-for-selftests.c b/gdb/unittests/parallel-for-selftests.c
index 1ad7eaa701c..5e2f8b5f735 100644
--- a/gdb/unittests/parallel-for-selftests.c
+++ b/gdb/unittests/parallel-for-selftests.c
@@ -27,6 +27,7 @@
#include "defs.h"
#include "gdbsupport/selftest.h"
#include "gdbsupport/parallel-for.h"
+#include <memory>
#if CXX_STD_THREAD
@@ -160,7 +161,7 @@ TEST (int n_threads)
{
if (start == end)
any_empty_tasks = true;
- return gdb::make_unique<int> (end - start);
+ return std::make_unique<int> (end - start);
});
SELF_CHECK (!any_empty_tasks);
SELF_CHECK (std::all_of (intresults.begin (),
@@ -178,7 +179,7 @@ TEST (int n_threads)
{
if (start == end)
any_empty_tasks = true;
- return gdb::make_unique<int> (end - start);
+ return std::make_unique<int> (end - start);
},
task_size_one);
SELF_CHECK (!any_empty_tasks);
diff --git a/gdb/varobj.c b/gdb/varobj.c
index a4fcbffc311..5d1ae343fca 100644
--- a/gdb/varobj.c
+++ b/gdb/varobj.c
@@ -33,6 +33,7 @@
#include "gdbarch.h"
#include <algorithm>
#include "observable.h"
+#include <memory>
#if HAVE_PYTHON
#include "python/python.h"
@@ -259,7 +260,7 @@ varobj_create (const char *objname,
const char *expression, CORE_ADDR frame, enum varobj_type type)
{
/* Fill out a varobj structure for the (root) variable being constructed. */
- auto var = gdb::make_unique<varobj> (new varobj_root);
+ auto var = std::make_unique<varobj> (new varobj_root);
if (expression != NULL)
{
diff --git a/gdbsupport/gdb_unique_ptr.h b/gdbsupport/gdb_unique_ptr.h
index 2b6c0ce3d53..3bef6ff34d6 100644
--- a/gdbsupport/gdb_unique_ptr.h
+++ b/gdbsupport/gdb_unique_ptr.h
@@ -56,19 +56,6 @@ struct noop_deleter
void operator() (T *ptr) const { }
};
-/* Create simple std::unique_ptr<T> objects. */
-
-template<typename T, typename... Arg>
-std::unique_ptr<T>
-make_unique (Arg &&...args)
-{
-#if __cplusplus >= 201402L
- return std::make_unique<T> (std::forward<Arg> (args)...);
-#else
- return std::unique_ptr<T> (new T (std::forward<Arg> (args)...));
-#endif /* __cplusplus < 201402L */
-}
-
} /* namespace gdb */
/* Dup STR and return a unique_xmalloc_ptr for the result. */
--
2.34.1
next prev parent reply other threads:[~2023-10-13 14:45 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-13 14:44 [PATCH 00/11] GDB: Require C++17 Lancelot Six
2023-10-13 14:44 ` [PATCH 01/11] gdb/ax_cxx_compile_stdcxx.m4: upgrade Lancelot Six
2023-10-13 14:44 ` [PATCH 02/11] gdb/gdbsupport/gdbserver: Require c++17 Lancelot Six
2023-10-13 15:21 ` Eli Zaretskii
2023-10-16 21:50 ` Pedro Alves
2023-10-13 14:44 ` Lancelot Six [this message]
2023-10-16 19:14 ` [PATCH 03/11] gdb: Use C++17's std::make_unique instead of gdb::make_unique Tom Tromey
2023-10-17 14:02 ` Lancelot SIX
2023-10-13 14:44 ` [PATCH 04/11] gdb: Replace gdb::optional with std::optional Lancelot Six
2023-10-13 14:44 ` [PATCH 05/11] gdbsupport: remove gdb::optional Lancelot Six
2023-10-13 14:44 ` [PATCH 06/11] gdb: Use std::string_view instead of gdb::string_view Lancelot Six
2023-10-14 21:50 ` Tom Tromey
2023-10-14 23:58 ` Six, Lancelot
2023-10-16 15:06 ` Lancelot SIX
2023-10-16 19:35 ` Tom Tromey
2023-10-16 21:51 ` Pedro Alves
2023-10-17 14:13 ` Lancelot SIX
2023-10-17 14:20 ` Simon Marchi
2023-10-13 14:44 ` [PATCH 07/11] gdb: Remove uses of gdb::to_string (const std::string_view &) Lancelot Six
2023-10-13 14:44 ` [PATCH 08/11] gdbsupport: Remove gdb::string_view Lancelot Six
2023-10-16 19:38 ` Tom Tromey
2023-10-13 14:44 ` [PATCH 09/11] gdbsupport: Replace gdb::invoke_result with std::invoke_result Lancelot Six
2023-10-13 14:44 ` [PATCH 10/11] gdb/disasm.h: Mark callbacks noexcept unconditionally Lancelot Six
2023-10-16 21:51 ` Pedro Alves
2023-10-13 14:44 ` [PATCH 11/11] gdb: Use initializers in lambda captures unconditionally Lancelot Six
2023-10-16 19:43 ` [PATCH 00/11] GDB: Require C++17 Tom Tromey
2023-10-16 21:53 ` Pedro Alves
2023-10-23 13:42 ` Lancelot SIX
2023-10-28 20:48 ` Lancelot SIX
2023-11-21 12:04 ` [COMMITTED PATCH v2 0/9] " Lancelot Six
2023-11-21 12:04 ` [COMMITTED PATCH v2 1/9] gdb: Use C++17's std::make_unique instead of gdb::make_unique Lancelot Six
2023-11-21 12:04 ` [COMMITTED PATCH v2 2/9] gdb: Replace gdb::optional with std::optional Lancelot Six
2023-11-21 12:04 ` [COMMITTED PATCH v2 3/9] gdbsupport: remove gdb::optional Lancelot Six
2023-11-21 12:04 ` [COMMITTED PATCH v2 4/9] gdb: Use std::string_view instead of gdb::string_view Lancelot Six
2023-11-21 12:04 ` [COMMITTED PATCH v2 5/9] gdb: Remove uses of gdb::to_string (const std::string_view &) Lancelot Six
2023-11-21 12:04 ` [COMMITTED PATCH v2 6/9] gdbsupport: Remove gdb::string_view Lancelot Six
2023-11-21 12:04 ` [COMMITTED PATCH v2 7/9] gdbsupport: Replace gdb::invoke_result with std::invoke_result Lancelot Six
2023-11-21 12:04 ` [COMMITTED PATCH v2 8/9] gdb/disasm.h: Mark callbacks noexcept unconditionally Lancelot Six
2023-11-21 12:05 ` [COMMITTED PATCH v2 9/9] gdb: Use initializers in lambda captures unconditionally Lancelot Six
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231013144418.3180617-4-lancelot.six@amd.com \
--to=lancelot.six@amd.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox