https://sourceware.org/bugzilla/show_bug.cgi?id=25872

--- Comment #1 from H.J. Lu <hjl.tools at gmail dot com> ---
template<int size>
uint64_t
Output_data_plt_x86_64_ibt<size>::do_address_for_local(const Relobj* object,
                                                 unsigned int r_sym)
{
  // Convert the PLT offset into an APLT offset.
  unsigned int plt_offset = ((object->local_plt_offset(r_sym) - plt_entry_size)
                             / (plt_entry_size / aplt_entry_size));
  return (this->address()
          + this->aplt_offset_
          + this->regular_count() * aplt_entry_size
          + plt_offset);
}

(gdb) p r_sym
$27 = 5
(gdb) p object->local_plt_offset(r_sym)
$28 = 0
(gdb) 

((object->local_plt_offset(r_sym) - plt_entry_size) is negative.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to