From 65164438aaf163aee0de40bcfab87dfd58f47b6b Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Fri, 6 Mar 2015 09:46:15 +0000 Subject: [PATCH] Fix an undefined 32-bit right shift by replacing it with two 16-bit right shifts. PR binutils/17765 * elflink.c (put_value): Like previous delta, but for the 32-bit case. --- bfd/ChangeLog | 6 ++++++ bfd/elflink.c | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 6810f6b99b3..a370597bacb 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2015-03-06 Nick Clifton + + PR binutils/17765 + * elflink.c (put_value): Like previous delta, but for the 32-bit + case. + 2015-03-05 Nick Clifton PR binutils/17765 diff --git a/bfd/elflink.c b/bfd/elflink.c index b285e765de7..f93293bbeda 100644 --- a/bfd/elflink.c +++ b/bfd/elflink.c @@ -7807,7 +7807,9 @@ put_value (bfd_vma size, break; case 4: bfd_put_32 (input_bfd, x, location); - x >>= 32; + /* Computed this way because x >>= 32 is undefined if x is a 32-bit value. */ + x >>= 16; + x >>= 16; break; #ifdef BFD64 case 8: -- 2.30.2