PTR_ADD and NPTR_ADD for bfd.h
authorAlan Modra <amodra@gmail.com>
Wed, 1 Sep 2021 23:34:52 +0000 (09:04 +0930)
committerAlan Modra <amodra@gmail.com>
Thu, 2 Sep 2021 04:18:21 +0000 (13:48 +0930)
commit36f61bf2ad936edfb76eda706eb3b081a61d5a5a
treee8eac96abd2209a4b3e23dae781487f53352f056
parent76aa354424729aafdabdf4929aa9751c6fdee081
PTR_ADD and NPTR_ADD for bfd.h

This defines a couple of macros used to avoid ubsan complaints about
calculations involving NULL pointers.  PTR_ADD should be used in the
case where it is known that the offset is always zero with a NULL
pointer, and you'd like to know if a non-zero offset is ever used.
NPTR_ADD should be rarely used, but is defined for cases where a
non-zero offset is expected and should be ignored if the pointer is
NULL.

bfd/
* bfd-in.h (PTR_ADD, NPTR_ADD): Define.
* bfd-in2.h: Regenerate.
* elf-eh-frame.c (adjust_eh_frame_local_symbols): Avoid NULL
pointer calculations.
* elflink.c (_bfd_elf_strip_zero_sized_dynamic_sections): Likewise.
(bfd_elf_add_dt_needed_tag, elf_finalize_dynstr): Likewise.
(elf_link_add_object_symbols, elf_link_input_bfd): Likewise.
(bfd_elf_final_link, bfd_elf_gc_record_vtinherit): Likewise.
binutils/
* objdump.c (disassemble_section): Use PTR_ADD for rel_ppend.
bfd/bfd-in.h
bfd/bfd-in2.h
bfd/elf-eh-frame.c
bfd/elflink.c
binutils/objdump.c