aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf-eh-frame.c21
2 files changed, 16 insertions, 10 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 751c993..6994b7f 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,10 @@
2007-07-02 Alan Modra <amodra@bigpond.net.au>
+ * elf-eh-frame.c (_bfd_elf_discard_section_eh_frame): Tidy
+ symsec != NULL tests.
+
+2007-07-02 Alan Modra <amodra@bigpond.net.au>
+
PR 4712
* elf.c (assign_file_positions_for_load_sections): Adjust lma
by p_vaddr_offset.
diff --git a/bfd/elf-eh-frame.c b/bfd/elf-eh-frame.c
index 4fc91d2..092c2c5 100644
--- a/bfd/elf-eh-frame.c
+++ b/bfd/elf-eh-frame.c
@@ -712,17 +712,18 @@ _bfd_elf_discard_section_eh_frame
sym = &cookie->locsyms[r_symndx];
sym_sec = (bfd_section_from_elf_index
(abfd, sym->st_shndx));
- if (sym_sec != NULL
- && sym_sec->kept_section != NULL)
- sym_sec = sym_sec->kept_section;
- if (sym_sec != NULL
- && sym_sec->output_section != NULL)
+ if (sym_sec != NULL)
{
- val = (sym->st_value
- + sym_sec->output_offset
- + sym_sec->output_section->vma);
- cie->personality.val = val;
- cie->local_personality = 1;
+ if (sym_sec->kept_section != NULL)
+ sym_sec = sym_sec->kept_section;
+ if (sym_sec->output_section != NULL)
+ {
+ val = (sym->st_value
+ + sym_sec->output_offset
+ + sym_sec->output_section->vma);
+ cie->personality.val = val;
+ cie->local_personality = 1;
+ }
}
}