Is it necessary to specify all 4 of these warnings to get the maximum amount of warnings in C code? I would expect that -Wmissing-prototypes implies -Wmissing-declarations since I understand prototype to mean exactly "new-style function declaration". However I note that http://gcc.gnu.org/ml/gcc/2006-10/msg00609.html does not state that any of these 4 options imply another. What I'm trying to achieve is no old-style function declarations or definitions, all global function definitions must have a pre-existing new-style function declaration.