From: Tom Tromey Date: Tue, 15 Feb 2022 16:04:01 +0000 (-0700) Subject: Add constructor to bound_minimal_symbol X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f6b3ad544063314a1e7fcaa703b5e29f5ff10780;p=binutils-gdb.git Add constructor to bound_minimal_symbol This adds a constructor to bound_minimal_symbol, to avoid a build failure with clang that Simon pointed out. I also took the opportunity to remove some redundant initializations, and to change one use of push_back to emplace_back, as suggested by Simon. --- diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c index 9ff2bf82374..a3cfeea6989 100644 --- a/gdb/breakpoint.c +++ b/gdb/breakpoint.c @@ -3171,10 +3171,10 @@ static const char *const longjmp_names[] = struct breakpoint_objfile_data { /* Minimal symbol for "_ovly_debug_event" (if any). */ - struct bound_minimal_symbol overlay_msym {}; + struct bound_minimal_symbol overlay_msym; /* Minimal symbol(s) for "longjmp", "siglongjmp", etc. (if any). */ - struct bound_minimal_symbol longjmp_msym[NUM_LONGJMP_NAMES] {}; + struct bound_minimal_symbol longjmp_msym[NUM_LONGJMP_NAMES]; /* True if we have looked for longjmp probes. */ int longjmp_searched = 0; @@ -3184,10 +3184,10 @@ struct breakpoint_objfile_data std::vector longjmp_probes; /* Minimal symbol for "std::terminate()" (if any). */ - struct bound_minimal_symbol terminate_msym {}; + struct bound_minimal_symbol terminate_msym; /* Minimal symbol for "_Unwind_DebugHook" (if any). */ - struct bound_minimal_symbol exception_msym {}; + struct bound_minimal_symbol exception_msym; /* True if we have looked for exception probes. */ int exception_searched = 0; diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c index 7734115b744..760cb1bea13 100644 --- a/gdb/hppa-tdep.c +++ b/gdb/hppa-tdep.c @@ -2531,7 +2531,7 @@ struct bound_minimal_symbol hppa_lookup_stub_minimal_symbol (const char *name, enum unwind_stub_types stub_type) { - struct bound_minimal_symbol result = { NULL, NULL }; + struct bound_minimal_symbol result; for (objfile *objfile : current_program_space->objfiles ()) { diff --git a/gdb/linespec.c b/gdb/linespec.c index 9e21df76efa..707a3a2586a 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -4273,8 +4273,7 @@ add_minsym (struct minimal_symbol *minsym, struct objfile *objfile, if (!list_mode && !msymbol_is_function (objfile, minsym)) return; - struct bound_minimal_symbol mo = {minsym, objfile}; - msyms->push_back (mo); + msyms->emplace_back (minsym, objfile); return; } diff --git a/gdb/minsyms.c b/gdb/minsyms.c index 9a44e4bcf6d..4eab8daabec 100644 --- a/gdb/minsyms.c +++ b/gdb/minsyms.c @@ -230,13 +230,13 @@ add_minsym_to_demangled_hash_table (struct minimal_symbol *sym, struct found_minimal_symbols { /* External symbols are best. */ - bound_minimal_symbol external_symbol {}; + bound_minimal_symbol external_symbol; /* File-local symbols are next best. */ - bound_minimal_symbol file_symbol {}; + bound_minimal_symbol file_symbol; /* Symbols for shared library trampolines are next best. */ - bound_minimal_symbol trampoline_symbol {}; + bound_minimal_symbol trampoline_symbol; /* Called when a symbol name matches. Check if the minsym is a better type than what we had already found, and record it in one @@ -601,8 +601,8 @@ struct bound_minimal_symbol lookup_minimal_symbol_text (const char *name, struct objfile *objf) { struct minimal_symbol *msymbol; - struct bound_minimal_symbol found_symbol = { NULL, NULL }; - struct bound_minimal_symbol found_file_symbol = { NULL, NULL }; + struct bound_minimal_symbol found_symbol; + struct bound_minimal_symbol found_file_symbol; unsigned int hash = msymbol_hash (name) % MINIMAL_SYMBOL_HASH_SIZE; diff --git a/gdb/minsyms.h b/gdb/minsyms.h index ed31d32483a..519702494ed 100644 --- a/gdb/minsyms.h +++ b/gdb/minsyms.h @@ -28,6 +28,14 @@ struct type; struct bound_minimal_symbol { + bound_minimal_symbol (struct minimal_symbol *msym, struct objfile *objf) + : minsym (msym), + objfile (objf) + { + } + + bound_minimal_symbol () = default; + /* The minimal symbol that was found, or NULL if no minimal symbol was found. */ diff --git a/gdb/psymtab.c b/gdb/psymtab.c index ac5009aec37..2aa1d18fed3 100644 --- a/gdb/psymtab.c +++ b/gdb/psymtab.c @@ -1577,7 +1577,7 @@ maintenance_print_psymbols (const char *args, int from_tty) if (address_arg != NULL) { - struct bound_minimal_symbol msymbol = { NULL, NULL }; + struct bound_minimal_symbol msymbol; /* We don't assume each pc has a unique objfile (this is for debugging). */