Trying to output a pointer’s address in decimal form using the %zu conversion specifier. Runs okay as expected except that GCC warns
format ‘%zu’ expects type ‘size_t’, but argument 4 has type ‘long int *’
GCC options used are shown in the question. GCC still warns without any options set (other than -std=c99). clang however, does not issue any warnings at all with the same options. This is on OS X 10.7. Just curious why clang isn’t issuing any warnings? Is GCC “better” than clang for debugging/compiling?
This appears to be specific to the
zsize modifier in clang; you do get a warning with%lu,%u,%hu, etc. (Even without any options)Generally speaking, it has been my experience that clang has more useful warning messages than GCC does. This is an exception to that experience. I’ll file a bug.