On 16-Jun-06, 08:18 (CDT), Henning Makholm <[EMAIL PROTECTED]> wrote: 
> Another related bug type that I found lurking in my packages when I
> investigated the warnings in this list, is trying to format a size_t
> value with a %u or %d format string, which will break if size_t is 64
> bits (unless the actual number is small and it is the last argument
> and the endianness of the architecture happens to match its stack
> growth direction). This too produces a warning on all relevant gcc
> versions, but only when compiling to a 64-bit target.

Actually, it will provide a warning on 32-bit platforms too, if one chooses the 
appropriate options (-Wall, or specifically -Wformat):

$ cat tprint.c
#include <stdio.h>

int main(void) {

        int i;
        size_t st;

        printf("%d %lu\n", i, st);
        return 0;
}

$ gcc -Wall tprint.c 
tprint.c: In function 'main':
tprint.c:8: warning: format '%lu' expects type 'long unsigned int', but 
argument 3 has type 'size_t'

Steve



-- 
Steve Greenland
    The irony is that Bill Gates claims to be making a stable operating
    system and Linus Torvalds claims to be trying to take over the
    world.       -- seen on the net


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to