Stop GCC thinking a shift will overflow.
This commit is contained in:
parent
d66c34e293
commit
eb90a51f9d
|
@ -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>
|
2000-04-03 H.J. Lu <hjl@gnu.org>
|
||||||
|
|
||||||
* TODO: Remove the regex entry.
|
* TODO: Remove the regex entry.
|
||||||
|
|
|
@ -445,10 +445,13 @@ print_scalar_formatted (valaddr, type, format, size, stream)
|
||||||
case 'a':
|
case 'a':
|
||||||
{
|
{
|
||||||
/* Truncate address to the size of a target pointer, avoiding
|
/* 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);
|
CORE_ADDR addr = unpack_pointer (type, valaddr);
|
||||||
if (TARGET_PTR_BIT < (sizeof (CORE_ADDR) * HOST_CHAR_BIT))
|
int ptr_bit = TARGET_PTR_BIT;
|
||||||
addr &= ((CORE_ADDR) 1 << TARGET_PTR_BIT) - 1;
|
if (ptr_bit < (sizeof (CORE_ADDR) * HOST_CHAR_BIT))
|
||||||
|
addr &= ((CORE_ADDR) 1 << ptr_bit) - 1;
|
||||||
print_address (addr, stream);
|
print_address (addr, stream);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue