From e7b38ccb8255ad75422c3c189c86d2e1f7bdef95 Mon Sep 17 00:00:00 2001 From: Lancelot Six Date: Thu, 14 Sep 2023 11:13:24 +0000 Subject: [PATCH] gdb: Use c++17 std::make_unique instead of gdb::make_unique MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit gdb::make_unique is a wrapper around std::make_unique when compiled with c++17. Now that 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 /* 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 (); + auto map = std::make_unique (); 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 /* 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 (gdbarch, is_temp, nullptr, + auto c = std::make_unique (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 /* 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 (context); + return std::make_unique (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 #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 (); + auto result = std::make_unique (); 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 #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 (); + auto info = std::make_unique (); 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 #include +#include 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 (objfile); + auto unit = std::make_unique (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 /* 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 (); + auto map = std::make_unique (); 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 /* 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 (); + auto map = std::make_unique (); 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 /* 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 create_type_unit_group (struct dwarf2_cu *cu, sect_offset line_offset_struct) { - auto tu_group = gdb::make_unique (); + auto tu_group = std::make_unique (); 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 buffer - = gdb::make_unique (addr, size); + = std::make_unique (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 /* The value of an invalid conversion badness. */ #define INVALID_CONVERSION 100 @@ -5833,7 +5834,7 @@ static const struct registry::key void allocate_fixed_point_type_info (struct type *type) { - auto up = gdb::make_unique (); + auto up = std::make_unique (); 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 #include #include +#include enum { @@ -1933,7 +1934,7 @@ mi_execute_command (const char *cmd, int from_tty) = gdb::checked_static_cast (command_interp ()); try { - command = gdb::make_unique (cmd, &token); + command = std::make_unique (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 +#include #include "interps.h" #include "ui-out.h" @@ -340,13 +341,13 @@ std::unique_ptr mi_out_new (const char *mi_version) { if (streq (mi_version, INTERP_MI4) || streq (mi_version, INTERP_MI)) - return gdb::make_unique (4); + return std::make_unique (4); if (streq (mi_version, INTERP_MI3)) - return gdb::make_unique (3); + return std::make_unique (3); if (streq (mi_version, INTERP_MI2)) - return gdb::make_unique (2); + return std::make_unique (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 #include @@ -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 tinfo - { gdb::make_unique (ptid) }; + { std::make_unique (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 tinfo - { gdb::make_unique (ptid) }; + { std::make_unique (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 /* 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 (std::move (mi_command), + auto parser = std::make_unique (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 /* 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 (var, std::move (iter), opts); + return std::make_unique (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 (m_headers.size () + 1, + auto header = std::make_unique (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 (type); + auto level = std::make_unique (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 #if CXX_STD_THREAD @@ -160,7 +161,7 @@ TEST (int n_threads) { if (start == end) any_empty_tasks = true; - return gdb::make_unique (end - start); + return std::make_unique (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 (end - start); + return std::make_unique (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 #include "observable.h" +#include #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 (new varobj_root); + auto var = std::make_unique (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 objects. */ - -template -std::unique_ptr -make_unique (Arg &&...args) -{ -#if __cplusplus >= 201402L - return std::make_unique (std::forward (args)...); -#else - return std::unique_ptr (new T (std::forward (args)...)); -#endif /* __cplusplus < 201402L */ -} - } /* namespace gdb */ /* Dup STR and return a unique_xmalloc_ptr for the result. */ -- 2.47.2