This is the mail archive of the gdb-cvs@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] Use unsigned integer constant with left shifts.


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=db297a6501dc44c10bff096eddcc358b48810aad

commit db297a6501dc44c10bff096eddcc358b48810aad
Author: John Baldwin <jhb@FreeBSD.org>
Date:   Sat Jun 11 13:18:15 2016 -0700

    Use unsigned integer constant with left shifts.
    
    This avoids undefined behavior.
    
    gdb/ChangeLog:
    
    	* ada-lang.c (ada_unpack_from_contents): Use unsigned constants with
    	left shifts.

Diff:
---
 gdb/ChangeLog  | 5 +++++
 gdb/ada-lang.c | 4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c9ad9cc..5adf9a8 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
 2016-07-06  John Baldwin  <jhb@FreeBSD.org>
 
+	* ada-lang.c (ada_unpack_from_contents): Use unsigned constants with
+	left shifts.
+
+2016-07-06  John Baldwin  <jhb@FreeBSD.org>
+
 	* sh64-tdep.c (sh64_analyze_prologue): Set "uses_fp" when setting
 	the MEDIA_FP_REGNUM register.
 
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c
index b22b7ac..05bfd7b 100644
--- a/gdb/ada-lang.c
+++ b/gdb/ada-lang.c
@@ -2525,7 +2525,7 @@ ada_unpack_from_contents (const gdb_byte *src, int bit_offset, int bit_size,
       accumSize += HOST_CHAR_BIT - unusedLS;
       if (accumSize >= HOST_CHAR_BIT)
         {
-          unpacked[unpacked_idx] = accum & ~(~0L << HOST_CHAR_BIT);
+          unpacked[unpacked_idx] = accum & ~(~0UL << HOST_CHAR_BIT);
           accumSize -= HOST_CHAR_BIT;
           accum >>= HOST_CHAR_BIT;
           unpacked_bytes_left -= 1;
@@ -2539,7 +2539,7 @@ ada_unpack_from_contents (const gdb_byte *src, int bit_offset, int bit_size,
   while (unpacked_bytes_left > 0)
     {
       accum |= sign << accumSize;
-      unpacked[unpacked_idx] = accum & ~(~0L << HOST_CHAR_BIT);
+      unpacked[unpacked_idx] = accum & ~(~0UL << HOST_CHAR_BIT);
       accumSize -= HOST_CHAR_BIT;
       if (accumSize < 0)
 	accumSize = 0;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]