Hi,
I am going to commit this trivial patch.
-Doug
2008-06-17 Doug Kwan <dougkwan@google.com>
* lto-section-in.c (lto_get_flags): Fix bug in mask computation.
* lto-section-out.c (lto_set_flags): Same.
ndex: gcc/gcc/lto-section-in.c
===================================================================
--- gcc/gcc/lto-section-in.c (revision 136882)
+++ gcc/gcc/lto-section-in.c (working copy)
@@ -70,7 +70,7 @@ lto_get_flag (unsigned HOST_WIDEST_INT *
unsigned int
lto_get_flags (unsigned HOST_WIDEST_INT *flags, unsigned int width)
{
- unsigned HOST_WIDEST_INT mask = 1 << (((unsigned HOST_WIDEST_INT)width) - 1);
+ unsigned HOST_WIDEST_INT mask = (((unsigned HOST_WIDEST_INT) 1) <<
width) - 1;
unsigned int result = *flags & mask;
*flags = *flags >> width;
return result;
Index: gcc/gcc/lto-section-out.c
===================================================================
--- gcc/gcc/lto-section-out.c (revision 136882)
+++ gcc/gcc/lto-section-out.c (working copy)
@@ -68,7 +68,7 @@ lto_set_flag (unsigned HOST_WIDEST_INT *
void
lto_set_flags (unsigned HOST_WIDEST_INT *base, unsigned int flag,
unsigned int width)
{
- unsigned HOST_WIDEST_INT mask = 1 < (((unsigned HOST_WIDEST_INT)width) - 1);
+ unsigned HOST_WIDEST_INT mask = (((unsigned HOST_WIDEST_INT) 1) <<
width) - 1;
*base = *base << width;
*base |= (flag & mask);