This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: endless loop in compute_inverse bootstrapping on alpha


> Breakpoint 6, compute_inverse (order=32)
>     at
> /home/ritzert/nfs/compile/gcc/HEAD/gcc/gcc/ggc-page.c:1084
> 1084      e = 0;
> 1: size = 0
> 
> Here obviously size % 2 == 0 will always be true.

This keeps bugging me...
I went on with debugging and much to my surprise found:
 (gdb) p object_size_table
$8 = {1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192,
16384,
  32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304,
8388608,
  16777216, 33554432, 67108864, 134217728, 268435456, 536870912,
1073741824,
  2147483648, 4294967296, 8589934592, 17179869184, 34359738368,
68719476736,
  137438953472, 274877906944, 549755813888, 1099511627776,
2199023255552,
  4398046511104, 8796093022208, 17592186044416, 35184372088832,
  70368744177664, 140737488355328, 281474976710656, 562949953421312,
  1125899906842624, 2251799813685248, 4503599627370496,
9007199254740992,
  18014398509481984, 36028797018963968, 72057594037927936,
144115188075855872,
  288230376151711744, 576460752303423488, 1152921504606846976,
  2305843009213693952, 4611686018427387904, 9223372036854775808, 216,
40, 24,
  88}

With OBJECT_SIZE defined as a lookup in that table, OBJECT_SIZE(32)
should definitively by non-zero. Maybe it should be defined as size_t
as is object_size_table (untested patch follows)? On alpha
sizeof(unsigned)==4 while sizeof(size_t)==8.

Michael

2002-08-23 Michael Ritzert <michael@ritzert.de>
	* ggc-page.c (compute_inverse): Define size and inv as
	size_t.

Index: ggc-page.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ggc-page.c,v
retrieving revision 1.53
diff -u -3 -p -r1.53 ggc-page.c
--- ggc-page.c  22 Aug 2002 19:17:04 -0000      1.53
+++ ggc-page.c  23 Aug 2002 15:34:17 -0000
@@ -1078,7 +1078,8 @@ static void
 compute_inverse (order)
      unsigned order;
 {
-  unsigned size, inv, e;
+  size_t size, inv;
+  unsigned e;

   size = OBJECT_SIZE (order);
   e = 0;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]