Eric Blake wrote: > Then how do I explain the compiler > warning that Daniel was seeing under mingw64?
They come from disagreements regarding the "integer conversion rank" of 'size_t' and 'ssize_t' between GCC and <sys/types.h>. When you write printf("%zd",arg) then GCC compares its own built-in knowledge about 'ssize_t' being 'int' or 'long' with the type of the argument 'arg'. It reports mismatch between 'int' and 'long' also on 32-bit platforms (possibly with the intent of helping portability to 64-bit platforms). Bruno