On Sun, 20 May 2007, Jan Hudec wrote: > On Fri, May 18, 2007 at 17:02:56 +0300, Ilpo Järvinen wrote: > > David Kastrup <dak@xxxxxxx> wrote: > > > > > Only if size_t is a larger type than int (could be on x86-64 and alpha > > > architectures). Other than that, this comparison would work. Which > > > does not mean that this does not warrant fixing, but it is not > > > necessarily the cause of this problem. > > > > ...sizeof(size_t) == sizeof(int) should hold... > > Really? > > $ cat test.c > #include <stdio.h> > int main(void) > { > printf("sizeof(int) = %i\n", sizeof(int)); > printf("sizeof(long) = %i\n", sizeof(long)); > printf("sizeof(size_t) = %i\n", sizeof(size_t)); > return 0; > } > $ gcc -otest test.c > $ ./test > sizeof(int) = 4 > sizeof(long) = 8 > sizeof(size_t) = 8 > > Hm, it does not seem that sizeof(size_t) == sizeof(int). ...On 64-bit perhaps but mine isn't one of them... I'm sorry if my wording was misleading, I meant to say that on my system the equality of sizeof()s should hold... :-) > $ uname -m > x86_64 > > Yes, this is a 64-bit system. ijjarvin@kivilampi-30:~/src/testsize$ ./main sizeof(int) = 4 sizeof(long) = 4 sizeof(size_t) = 4 $ uname -m i686 -- i.