Work around an apparent compiler bug with gcc-3.1, although it might be

a language feature that I do not know about.  gcc is complaining about
a left shift >= sizeof type, even when shifting a (cast) 64 bit type left
by 43 bits.
This commit is contained in:
Peter Wemm 2002-03-19 11:09:24 +00:00
parent 51ea8b33df
commit 34adf9e4f1

View File

@ -737,11 +737,14 @@ static void
ia64_print_I24(const char *name, u_int64_t ins, db_addr_t loc)
{
union ia64_instruction u;
u_int64_t i;
u.ins = ins;
i = u.I24.s;
i = i << 43;
i |= u.I24.imm27a << 16;
db_printf("%s pr.rot=%lx",
name,
sign_extend(((u_int64_t) u.I24.s << 43)
| (u.I24.imm27a << 16), 44));
sign_extend(i, 44));
}
static void