Date: Mon, 28 May 2001 14:59:44 +0300 From: Peter Pentchev <roam@orbitel.bg> To: Bruce Evans <bde@zeta.org.au> Cc: Sheldon Hearn <sheldonh@uunet.co.za>, Dima Dorfman <dd@FreeBSD.org>, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/usr.bin/jot Makefile jot.c Message-ID: <20010528145944.F588@ringworld.oblivion.bg> In-Reply-To: <Pine.BSF.4.21.0105282121480.1612-100000@besplex.bde.org>; from bde@zeta.org.au on Mon, May 28, 2001 at 09:43:58PM %2B1000 References: <50418.991042601@axl.fw.uunet.co.za> <Pine.BSF.4.21.0105282121480.1612-100000@besplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, May 28, 2001 at 09:43:58PM +1000, Bruce Evans wrote: > On Mon, 28 May 2001, Sheldon Hearn wrote: > > > On Sun, 27 May 2001 17:55:52 MST, Dima Dorfman wrote: > > > > > Modified files: > > > usr.bin/jot Makefile jot.c > > > Log: > > > Silence warnings and compile with WARNS=2 on i386 and alpha. > > > > Since when do you have to add a prototype for main()?! > > Since -Wmissing-prototypes was added to CFLAGS (by WARNS=2 or BDECFLAGS) > to detect the potential error of not declaring extern functions in > the right place (which is never in *.c). main() is a special case, > however. It can't be declared in a header file in C because in the > hosted (non-freestanding) case there are several valid but inconsistent > prototypes for it: > > int main(void); /* required to work by ISO C90 */ > int main(int argc, char **argv); /* same */ > int main(int argc, char **argv, char **envp); /* optional POSIX */ > int main(anything); /* optional implementation-defined */ > > gcc shouldn't warn about main() not being prototyped before it is > defined even with -Wmissing-prototypes, but it currently warns about > it if the definition is old-style. gcc -ffreestanding also seems to > be broken. I think main() should not be special then, but it is. In this case, gcc is not complaining about main() not being prototyped, and it's not complaining because of -Wmissing-prototypes. Rather, it's -Wstrict-prototypes that's making it whine, because of a K&R declaration without a previous prototype. It whines about 'function declaration is not a prototype', not about a missing prototype. G'luck, Peter -- If this sentence were in Chinese, it would say something else. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010528145944.F588>