diff options
author | Dominik Vogt <vogt@linux.vnet.ibm.com> | 2015-11-09 17:12:56 +0100 |
---|---|---|
committer | Andreas Krebbel <krebbel@linux.vnet.ibm.com> | 2015-11-09 17:12:56 +0100 |
commit | 29f628db8835fd86b85ffb40d4a9ed5b1c28f1e6 (patch) | |
tree | c0ffbc644152f866b50a138946114840e09b4612 /bfd/libbfd.c | |
parent | a5eda10c7857581e6ee641937f99aa76fa8044eb (diff) | |
download | gdb-29f628db8835fd86b85ffb40d4a9ed5b1c28f1e6.zip gdb-29f628db8835fd86b85ffb40d4a9ed5b1c28f1e6.tar.gz gdb-29f628db8835fd86b85ffb40d4a9ed5b1c28f1e6.tar.bz2 |
bfd: Fix left shift of negative value.
This patch fixes all occurences of left-shifting negative constants in C code
which is undefined by the C standard.
bfd/ChangeLog:
* elf64-ppc.c (ppc64_elf_size_stubs, ppc64_elf_build_stubs): Fix left
shift of negative value.
* libbfd.c (safe_read_leb128): Likewise.
* dwarf2.c (place_sections): Likewise.
* bfd-in.h (align_power): Likewise.
* bfd-in2.h (align_power): Likewise.
Diffstat (limited to 'bfd/libbfd.c')
-rw-r--r-- | bfd/libbfd.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/bfd/libbfd.c b/bfd/libbfd.c index 40afc2d..69582d5 100644 --- a/bfd/libbfd.c +++ b/bfd/libbfd.c @@ -1037,7 +1037,7 @@ safe_read_leb128 (bfd *abfd ATTRIBUTE_UNUSED, *length_return = num_read; if (sign && (shift < 8 * sizeof (result)) && (byte & 0x40)) - result |= (bfd_vma) -1 << shift; + result |= -((bfd_vma) 1 << shift); return result; } |