aboutsummaryrefslogtreecommitdiff
path: root/bfd/coffswap.h
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2016-01-18 15:58:47 +0000
committerNick Clifton <nickc@redhat.com>2016-01-18 15:58:47 +0000
commit9ae678af999b8a692c4e6efbe493f39f0085d149 (patch)
tree3d66932e9acf44617cdb0cb2fe3c899db344add4 /bfd/coffswap.h
parentf303dbd60d9c7984832446eeb9d4e4d89703c615 (diff)
downloadfsf-binutils-gdb-9ae678af999b8a692c4e6efbe493f39f0085d149.zip
fsf-binutils-gdb-9ae678af999b8a692c4e6efbe493f39f0085d149.tar.gz
fsf-binutils-gdb-9ae678af999b8a692c4e6efbe493f39f0085d149.tar.bz2
Use a 32-bit value to hold the section number in the internal COFF symbol structure.
PR ld/19440 inc * coff/internal.h (internal_syment): Use int to hold section number. (N_UNDEF): Cast to int not short. (N_ABS): Likewise. (N_DEBUG): Likewise. (N_TV): Likewise. (P_TV): Likewise. bfd PR ld/19440 * coff-rs6000.c (_bfd_xcoff_swap_sym_in): Sign extend external section number into internal section number. * coff64-rs6000.c (_bfd_xcoff64_swap_sym_in): Likewise. * coffswap.h (coff_swap_sym_in): Likewise. * peXXigen.c (_bfd_XXi_swap_sym_in): Likewise. * coffcode.h (_coff_bigobj_swap_sym_in): Make sure that internal section number field is big enough to hold the external value.
Diffstat (limited to 'bfd/coffswap.h')
-rw-r--r--bfd/coffswap.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/bfd/coffswap.h b/bfd/coffswap.h
index b9122c8..e6c8c3f 100644
--- a/bfd/coffswap.h
+++ b/bfd/coffswap.h
@@ -322,7 +322,7 @@ coff_swap_sym_in (bfd * abfd, void * ext1, void * in1)
}
in->n_value = H_GET_32 (abfd, ext->e_value);
- in->n_scnum = H_GET_16 (abfd, ext->e_scnum);
+ in->n_scnum = (short) H_GET_16 (abfd, ext->e_scnum);
if (sizeof (ext->e_type) == 2)
in->n_type = H_GET_16 (abfd, ext->e_type);
else