aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2000-04-04 04:16:48 +0000
committerAndrew Cagney <cagney@redhat.com>2000-04-04 04:16:48 +0000
commiteb90a51f9d4756c52f40cf2f4b906e1f6abc646b (patch)
tree9db43f4c91e7265a885c2db7d9307a83183e7d46
parentd66c34e293ba1b0b0129729c3f8a2c46ad1567c8 (diff)
downloadgdb-eb90a51f9d4756c52f40cf2f4b906e1f6abc646b.zip
gdb-eb90a51f9d4756c52f40cf2f4b906e1f6abc646b.tar.gz
gdb-eb90a51f9d4756c52f40cf2f4b906e1f6abc646b.tar.bz2
Stop GCC thinking a shift will overflow.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/printcmd.c9
2 files changed, 11 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c30b5dd..98580a6 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+Tue Apr 4 12:13:19 2000 Andrew Cagney <cagney@b1.cygnus.com>
+
+ * printcmd.c (print_scalar_formatted): Use local variable ptr_bit
+ in shift. Stop GCC thinking it has a shift overflow.
+
2000-04-03 H.J. Lu <hjl@gnu.org>
* TODO: Remove the regex entry.
diff --git a/gdb/printcmd.c b/gdb/printcmd.c
index 07139dd..5068cc9 100644
--- a/gdb/printcmd.c
+++ b/gdb/printcmd.c
@@ -445,10 +445,13 @@ print_scalar_formatted (valaddr, type, format, size, stream)
case 'a':
{
/* Truncate address to the size of a target pointer, avoiding
- shifts larger or equal than the width of a CORE_ADDR. */
+ shifts larger or equal than the width of a CORE_ADDR. The
+ local variable PTR_BIT stops the compiler reporting a shift
+ overflow when it won't occure. */
CORE_ADDR addr = unpack_pointer (type, valaddr);
- if (TARGET_PTR_BIT < (sizeof (CORE_ADDR) * HOST_CHAR_BIT))
- addr &= ((CORE_ADDR) 1 << TARGET_PTR_BIT) - 1;
+ int ptr_bit = TARGET_PTR_BIT;
+ if (ptr_bit < (sizeof (CORE_ADDR) * HOST_CHAR_BIT))
+ addr &= ((CORE_ADDR) 1 << ptr_bit) - 1;
print_address (addr, stream);
}
break;