bfd signed overflow fixes
[deliverable/binutils-gdb.git] / bfd / libhppa.h
index df50b7d44c0bfc6f0cd13824f9b25cfa85e3a0d7..632f5243d0b4befda8d438299b8ea0cbb7049f4d 100644 (file)
@@ -148,7 +148,7 @@ enum hppa_reloc_expr_type_alt
 #define HPPA_R_ARG_RELOC(a)    \
   (((a) >> 22) & 0x3ff)
 #define HPPA_R_CONSTANT(a)     \
-  ((((bfd_signed_vma)(a)) << (BFD_ARCH_SIZE-22)) >> (BFD_ARCH_SIZE-22))
+  ((((bfd_signed_vma) (a) & 0x3fffff) ^ 0x200000) - 0x200000)
 #define HPPA_R_ADDEND(r, c)    \
   (((r) << 22) + ((c) & 0x3fffff))
 
This page took 0.023241 seconds and 4 git commands to generate.