From: Alan Modra Date: Mon, 7 Oct 2024 23:21:37 +0000 (+1030) Subject: Revert "Don't return "(null)" from bfd_elf_sym_name" X-Git-Tag: gdb-16-branchpoint~711 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cc516199d64768b32bc4f8572ade82b4865eccfa;p=thirdparty%2Fbinutils-gdb.git Revert "Don't return "(null)" from bfd_elf_sym_name" This reverts commit 68bbe118337939aa0b52e007a7415c8a157579a1. --- diff --git a/bfd/coffgen.c b/bfd/coffgen.c index ff382a7e9c9..cc1c655738b 100644 --- a/bfd/coffgen.c +++ b/bfd/coffgen.c @@ -2161,12 +2161,11 @@ coff_print_symbol (bfd *abfd, bfd_print_symbol_type how) { FILE * file = (FILE *) filep; - const char *symname = symbol->name ? symbol->name : ""; switch (how) { case bfd_print_symbol_name: - fprintf (file, "%s", symname); + fprintf (file, "%s", symbol->name); break; case bfd_print_symbol_more: @@ -2190,7 +2189,7 @@ coff_print_symbol (bfd *abfd, if (combined < obj_raw_syments (abfd) || combined >= obj_raw_syments (abfd) + obj_raw_syment_count (abfd)) { - fprintf (file, _(" %s"), symname); + fprintf (file, _(" %s"), symbol->name); break; } @@ -2208,7 +2207,7 @@ coff_print_symbol (bfd *abfd, combined->u.syment.n_sclass, combined->u.syment.n_numaux); bfd_fprintf_vma (abfd, file, val); - fprintf (file, " %s", symname); + fprintf (file, " %s", symbol->name); for (aux = 0; aux < combined->u.syment.n_numaux; aux++) { @@ -2298,8 +2297,7 @@ coff_print_symbol (bfd *abfd, if (l) { - fprintf (file, "\n%s :", - l->u.sym->name ? l->u.sym->name : ""); + fprintf (file, "\n%s :", l->u.sym->name); l++; while (l->line_number) { @@ -2319,7 +2317,7 @@ coff_print_symbol (bfd *abfd, symbol->section->name, coffsymbol (symbol)->native ? "n" : "g", coffsymbol (symbol)->lineno ? "l" : " ", - symname); + symbol->name); } } } diff --git a/bfd/ecoff.c b/bfd/ecoff.c index 93b93f39be1..5ee7ffaf489 100644 --- a/bfd/ecoff.c +++ b/bfd/ecoff.c @@ -1452,12 +1452,11 @@ _bfd_ecoff_print_symbol (bfd *abfd, const struct ecoff_debug_swap * const debug_swap = &ecoff_backend (abfd)->debug_swap; FILE *file = (FILE *)filep; - const char *symname = symbol->name ? symbol->name : ""; switch (how) { case bfd_print_symbol_name: - fprintf (file, "%s", symname); + fprintf (file, "%s", symbol->name); break; case bfd_print_symbol_more: if (ecoffsymbol (symbol)->local) @@ -1527,7 +1526,7 @@ _bfd_ecoff_print_symbol (bfd *abfd, (unsigned) ecoff_ext.asym.sc, (unsigned) ecoff_ext.asym.index, jmptbl, cobol_main, weakext, - symname); + symbol->name); if (ecoffsymbol (symbol)->fdr != NULL && ecoff_ext.asym.index != indexNil) diff --git a/bfd/elf.c b/bfd/elf.c index 7d3d2063130..c882a66ab5c 100644 --- a/bfd/elf.c +++ b/bfd/elf.c @@ -549,7 +549,9 @@ bfd_elf_sym_name (bfd *abfd, } name = bfd_elf_string_from_elf_section (abfd, shindex, iname); - if (sym_sec && name && *name == '\0') + if (name == NULL) + name = "(null)"; + else if (sym_sec && *name == '\0') name = bfd_section_name (sym_sec); return name; @@ -2312,12 +2314,10 @@ bfd_elf_print_symbol (bfd *abfd, bfd_print_symbol_type how) { FILE *file = (FILE *) filep; - const char *symname = symbol->name ? symbol->name : ""; - switch (how) { case bfd_print_symbol_name: - fprintf (file, "%s", symname); + fprintf (file, "%s", symbol->name); break; case bfd_print_symbol_more: fprintf (file, "elf "); @@ -2340,10 +2340,11 @@ bfd_elf_print_symbol (bfd *abfd, if (bed->elf_backend_print_symbol_all) name = (*bed->elf_backend_print_symbol_all) (abfd, filep, symbol); - if (name != NULL) - symname = name; - else - bfd_print_symbol_vandf (abfd, file, symbol); + if (name == NULL) + { + name = symbol->name; + bfd_print_symbol_vandf (abfd, file, symbol); + } fprintf (file, " %s\t", section_name); /* Print the "other" value for a symbol. For common symbols, @@ -2390,7 +2391,7 @@ bfd_elf_print_symbol (bfd *abfd, fprintf (file, " 0x%02x", (unsigned int) st_other); } - fprintf (file, " %s", symname); + fprintf (file, " %s", name); } break; } diff --git a/bfd/pef.c b/bfd/pef.c index 324adb33d69..f330b92e821 100644 --- a/bfd/pef.c +++ b/bfd/pef.c @@ -210,17 +210,16 @@ bfd_pef_print_symbol (bfd *abfd, bfd_print_symbol_type how) { FILE *file = (FILE *) afile; - const char *symname = symbol->name ? symbol->name : ""; switch (how) { case bfd_print_symbol_name: - fprintf (file, "%s", symname); + fprintf (file, "%s", symbol->name); break; default: bfd_print_symbol_vandf (abfd, (void *) file, symbol); - fprintf (file, " %-5s %s", symbol->section->name, symname); - if (startswith (symname, "__traceback_")) + fprintf (file, " %-5s %s", symbol->section->name, symbol->name); + if (startswith (symbol->name, "__traceback_")) { unsigned char *buf; size_t offset = symbol->value + 4; diff --git a/bfd/syms.c b/bfd/syms.c index 816296b68a3..b370a3375d9 100644 --- a/bfd/syms.c +++ b/bfd/syms.c @@ -777,7 +777,7 @@ bfd_symbol_info (asymbol *symbol, symbol_info *ret) else ret->value = symbol->value + symbol->section->vma; - ret->name = symbol->name ? symbol->name : ""; + ret->name = symbol->name; } /* diff --git a/ld/ldlang.c b/ld/ldlang.c index 343c4de53f4..7f9e3d2b119 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -4895,6 +4895,9 @@ ld_is_local_symbol (asymbol * sym) if (name == NULL || *name == 0) return false; + if (strcmp (name, "(null)") == 0) + return false; + /* Skip .Lxxx and such like. */ if (bfd_is_local_label (link_info.output_bfd, sym)) return false;