Some dark corners of C
    #define struct union
    #define else

That's evil. I have to do it in someone's code some day just to have some fun.But, apart from that, it's a really nice compilation. I didn't know about the compile time checks of array sizes, but I have a doubt. What if I pass to a method declared    int foo(int x[static 10])

this pointer    int* x = (int*) calloc(20, sizeof(int));

Does the compiler skip the check? Does it give me a warning?EDIT: Funnily enough, in Mac it doesn't give any warning, neither for pointers nor for undersized arrays (ie, foo(w[5]) doesn't give a warning). And I've compiled with -std=c99 -pedantic -Wall.