endless loop in compute_inverse bootstrapping on alpha

Jan Hubicka jh@suse.cz
Fri Aug 23 10:21:00 GMT 2002


On Fri, Aug 23, 2002 at 05:39:11PM +0200, Ritzert@t-online.de wrote:
> > 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
This fixes the endless loop on same place for x86_64 with sizeof(size_t)==8
too.

Honza



More information about the Gcc mailing list