Ethereal

Re: [Ethereal-dev] stricter GCC (was: Re: [Patch] iostat win32 build)
Google
 
Web Ethereal.com

Home | Introduction | Documentation | Lists | FAQ | Development | Wiki | Bugs

Ethereal-dev: December 2002


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