On Mon, Dec 02, 2002 at 02:22:55PM -0700, John McDermott wrote:
> I propose
> -std=c99
> as a possible option to use.
hostname$ gcc -std=c99 foo.c
cc1: unknown C standard `c99'
hostname$ gcc --version
2.95.1f
> That would ensure compliance with C99 which is ISO/IEC 9899.
Not all compilers with which Ethereal would be built support C99. I'd
vote for C89; unfortunately, that's not strong enough:
hostname$ cat foo.c
#include <stdio.h>
void
foo(int a)
{
switch (a) {
case 1:
printf("Yes\n");
break;
case 2:
printf("No\n");
break;
default:
}
}
hostname$ gcc -c -Wall -W -std=c89 foo.c
hostname$
"-pedantic" does the trick:
hostname$ gcc -c -Wall -W -pedantic -std=c89 foo.c
foo.c: In function `foo':
foo.c:17: warning: ANSI C forbids label at end of compound statement
hostname$
and, in fact, does it without "-std=c89":
hostname$ gcc -c -Wall -W -pedantic foo.c
foo.c: In function `foo':
foo.c:17: warning: ANSI C forbids label at end of compound statement
hostname$
"-pedantic" might produce too many warnings to be generally useful, i.e.
it might drown you in warnings that can't be fixed. If so, it could be
added to the list of extra GCC options that "--with-extra-gcc-checks"
now enables - I checked that in recently; it currently turns on
"-Wcast-qual" and "-Wcast-align".
Powered by MHonArc 2.6.10