From: H.J. Lu Date: Fri, 6 Oct 2017 12:49:48 +0000 (-0700) Subject: Add "do/while(0);" to COPY_INPUT_RELOC_P/VERIFY_COPY_RELOC X-Git-Tag: users/ARM/embedded-binutils-master-2017q4~730 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e0d8f43169368abf354e596c7725dee1dd609cb8;p=platform%2Fupstream%2Fbinutils.git Add "do/while(0);" to COPY_INPUT_RELOC_P/VERIFY_COPY_RELOC Add "do/while(0);" to COPY_INPUT_RELOC_P/VERIFY_COPY_RELOC to avoid potential dangling else problems. * elfxx-x86.h (COPY_INPUT_RELOC_P): Add "do/while(0);". (VERIFY_COPY_RELOC): Likewise. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 982d29d..8633071 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,10 @@ 2017-10-06 H.J. Lu + * elfxx-x86.h (COPY_INPUT_RELOC_P): Add "do/while(0);". + (VERIFY_COPY_RELOC): Likewise. + +2017-10-06 H.J. Lu + * elfxx-x86.h (VERIFY_COPY_RELOC): New. * elf32-i386.c (elf_i386_finish_dynamic_symbol): Use it. * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Likewise. diff --git a/bfd/elfxx-x86.h b/bfd/elfxx-x86.h index ca270de..5dc21b0 100644 --- a/bfd/elfxx-x86.h +++ b/bfd/elfxx-x86.h @@ -198,24 +198,32 @@ /* Verify that the symbol has an entry in the procedure linkage table. */ #define VERIFY_PLT_ENTRY(INFO, H, PLT, GOTPLT, RELPLT, LOCAL_UNDEFWEAK) \ - if (((H)->dynindx == -1 \ - && !LOCAL_UNDEFWEAK \ - && !(((H)->forced_local || bfd_link_executable (INFO)) \ - && (H)->def_regular \ - && (H)->type == STT_GNU_IFUNC)) \ - || (PLT) == NULL \ - || (GOTPLT) == NULL \ - || (RELPLT) == NULL) \ - abort (); + do \ + { \ + if (((H)->dynindx == -1 \ + && !LOCAL_UNDEFWEAK \ + && !(((H)->forced_local || bfd_link_executable (INFO)) \ + && (H)->def_regular \ + && (H)->type == STT_GNU_IFUNC)) \ + || (PLT) == NULL \ + || (GOTPLT) == NULL \ + || (RELPLT) == NULL) \ + abort (); \ + } \ + while (0); /* Verify that the symbol supports copy relocation. */ #define VERIFY_COPY_RELOC(H, HTAB) \ - if ((H)->dynindx == -1 \ - || ((H)->root.type != bfd_link_hash_defined \ - && (H)->root.type != bfd_link_hash_defweak) \ - || (HTAB)->elf.srelbss == NULL \ - || (HTAB)->elf.sreldynrelro == NULL) \ - abort (); + do \ + { \ + if ((H)->dynindx == -1 \ + || ((H)->root.type != bfd_link_hash_defined \ + && (H)->root.type != bfd_link_hash_defweak) \ + || (HTAB)->elf.srelbss == NULL \ + || (HTAB)->elf.sreldynrelro == NULL) \ + abort (); \ + } \ + while (0); /* x86 ELF linker hash entry. */