From eb90a51f9d4756c52f40cf2f4b906e1f6abc646b Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Tue, 4 Apr 2000 04:16:48 +0000 Subject: [PATCH] Stop GCC thinking a shift will overflow. --- gdb/ChangeLog | 5 +++++ gdb/printcmd.c | 9 ++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c30b5dd501..98580a6c15 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +Tue Apr 4 12:13:19 2000 Andrew Cagney + + * 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 * TODO: Remove the regex entry. diff --git a/gdb/printcmd.c b/gdb/printcmd.c index 07139dd4ad..5068cc96c4 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; -- 2.34.1