Fix segfault in microblaze linker when garbage collection removes a symbol scheduled...
[deliverable/binutils-gdb.git] / bfd / elf32-score7.c
index 79d67689a1be313b53cbabd9850185259762d606..91b25d99bc0929f6ee3490862989c05aa10dd5f8 100644 (file)
@@ -1,5 +1,5 @@
 /* 32-bit ELF support for S+core.
-   Copyright (C) 2009-2016 Free Software Foundation, Inc.
+   Copyright (C) 2009-2017 Free Software Foundation, Inc.
    Contributed by
    Brain.lin (brain.lin@sunplusct.com)
    Mei Ligang (ligang@sunnorth.com.cn)
@@ -1852,9 +1852,12 @@ score_elf_final_link_relocate (reloc_howto_type *howto,
 
       bh = bfd_link_hash_lookup (info->hash, "_gp", 0, 0, 1);
       if (bh != NULL && bh->type == bfd_link_hash_defined)
-        elf_gp (output_bfd) = (bh->u.def.value
-                               + bh->u.def.section->output_section->vma
-                               + bh->u.def.section->output_offset);
+       {
+         elf_gp (output_bfd) = (bh->u.def.value
+                                + bh->u.def.section->output_offset);
+         if (bh->u.def.section->output_section)
+           elf_gp (output_bfd) += bh->u.def.section->output_section->vma;
+       }
       else if (bfd_link_relocatable (info))
         {
           bfd_vma lo = -1;
This page took 0.023675 seconds and 4 git commands to generate.