diff options
author | Alan Modra <amodra@gmail.com> | 2005-04-01 02:35:41 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2005-04-01 02:35:41 +0000 |
commit | 7356fed57f1a99325c89d5d05bdc46ebfd52ce16 (patch) | |
tree | 83e127798ffa72ef9c532b8f46bc7c2363dc88e3 /bfd | |
parent | 28b13744034126dc942e733967d2dad3986e41d1 (diff) | |
download | gdb-7356fed57f1a99325c89d5d05bdc46ebfd52ce16.zip gdb-7356fed57f1a99325c89d5d05bdc46ebfd52ce16.tar.gz gdb-7356fed57f1a99325c89d5d05bdc46ebfd52ce16.tar.bz2 |
* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Return -1 on errors
rather than 0.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf64-ppc.c | 20 |
2 files changed, 16 insertions, 9 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index bc8d44c..08bc6ee 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2005-04-01 Alan Modra <amodra@bigpond.net.au> + + * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Return -1 on errors + rather than 0. + 2005-03-31 H.J. Lu <hongjiu.lu@intel.com> * elf.c (assign_section_numbers): Fix a typo. diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index ca23f23..5a5e3a2 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -2687,7 +2687,7 @@ ppc64_elf_get_synthetic_symtab (bfd *abfd, syms = bfd_malloc ((symcount + 1) * sizeof (*syms)); if (syms == NULL) - return 0; + return -1; if (!relocatable && static_count != 0 && dyn_count != 0) { @@ -2758,11 +2758,15 @@ ppc64_elf_get_synthetic_symtab (bfd *abfd, slurp_relocs = get_elf_backend_data (abfd)->s->slurp_reloc_table; relcount = (opd->flags & SEC_RELOC) ? opd->reloc_count : 0; - - if (! relcount - || ! (*slurp_relocs) (abfd, opd, static_syms, FALSE)) + if (relcount == 0) goto done; + if (!(*slurp_relocs) (abfd, opd, static_syms, FALSE)) + { + count = -1; + goto done; + } + size = 0; for (i = secsymend, r = opd->relocation; i < opdsymend; ++i) { @@ -2794,7 +2798,7 @@ ppc64_elf_get_synthetic_symtab (bfd *abfd, s = *ret = bfd_malloc (size); if (s == NULL) { - count = 0; + count = -1; goto done; } @@ -2847,6 +2851,7 @@ ppc64_elf_get_synthetic_symtab (bfd *abfd, free_contents_and_exit: free (contents); } + count = -1; goto done; } @@ -2866,10 +2871,7 @@ ppc64_elf_get_synthetic_symtab (bfd *abfd, s = *ret = bfd_malloc (size); if (s == NULL) - { - count = 0; - goto free_contents_and_exit; - } + goto free_contents_and_exit; names = (char *) (s + count); |