Fix AArch64 encodings for by element instructions.
[deliverable/binutils-gdb.git] / gold / gc.h
index eda332c22dc3dfa07f0f2750f83d7ff4e2b0f211..78ead4132f9a533c1963ff3e3b71db71cb713331 100644 (file)
--- a/gold/gc.h
+++ b/gold/gc.h
@@ -247,7 +247,12 @@ gc_process_relocs(
                (*secvec).push_back(Section_id(src_obj, dst_indx));
              else
                 (*secvec).push_back(Section_id(NULL, 0));
-              (*symvec).push_back(NULL);
+              // If the target of the relocation is an STT_SECTION symbol,
+              // make a note of that by storing -1 in the symbol vector.
+              if (lsym.get_st_type() == elfcpp::STT_SECTION)
+               (*symvec).push_back(reinterpret_cast<Symbol*>(-1));
+             else
+               (*symvec).push_back(NULL);
              (*addendvec).push_back(std::make_pair(
                                        static_cast<long long>(symvalue),
                                        static_cast<long long>(addend)));
@@ -263,7 +268,7 @@ gc_process_relocs(
          if (is_ordinary
              && check_section_for_function_pointers
               && lsym.get_st_type() != elfcpp::STT_OBJECT
-             && scan.local_reloc_may_be_function_pointer(symtab, NULL, NULL,
+             && scan.local_reloc_may_be_function_pointer(symtab, NULL, target,
                                                          src_obj, src_indx,
                                                          NULL, reloc, r_type,
                                                          lsym))
@@ -300,7 +305,7 @@ gc_process_relocs(
               && dst_obj != NULL
               && (!is_ordinary
                   || scan.global_reloc_may_be_function_pointer(
-                       symtab, NULL, NULL, src_obj, src_indx, NULL, reloc,
+                       symtab, NULL, target, src_obj, src_indx, NULL, reloc,
                        r_type, gsym)))
             symtab->icf()->set_section_has_function_pointers(dst_obj, dst_indx);
 
This page took 0.024901 seconds and 4 git commands to generate.