Date: Thu, 6 Jan 2005 15:27:14 +0000 From: Paul Richards <paul@originative.co.uk> To: Xin LI <delphij@frontfree.net> Cc: Xin LI <delphij@freebsd.org> Subject: Re: cvs commit: src/usr.sbin/nologin nologin.c Message-ID: <20050106152714.GB45476@myrddin.originative.co.uk> In-Reply-To: <20050106145843.GA1855@frontfree.net> References: <20050104202213.GC63028@elvis.mu.org> <Pine.NEB.3.96L.1050104230945.45311j-100000@fledge.watson.org> <20050106104356.GB52159@clan.nothing-going-on.org> <20050106115705.GO16316@myrddin.originative.co.uk> <20050106145843.GA1855@frontfree.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jan 06, 2005 at 10:58:43PM +0800, Xin LI wrote:
> Hi, Paul,
>
> On Thu, Jan 06, 2005 at 11:57:06AM +0000, Paul Richards wrote:
> > On Thu, Jan 06, 2005 at 10:43:56AM +0000, Nik Clayton wrote:
> > > On Tue, Jan 04, 2005 at 11:11:07PM +0000, Robert Watson wrote:
> > > > On Tue, 4 Jan 2005, Maxime Henrion wrote:
> > > > > I bet there is a reason behind this, but I'm totally puzzled at why you
> > > > > would do such a thing. It was much prettier and more "C" before. Could
> > > > > you shed some light on this please?
> > > >
> > > > I ran into exactly the same problem I assume Xin Li is now running into
> > > > just a few days ago: gcc warns if argc and argv are unused in the main()
> > > > definition if they aren't referenced when running at higher WARNS levels.
> > > > I would argue this is a bug in gcc, since main() is part of an API calling
> > > > convention, and it doesn't matter if the arguments are unused by the
> > > > function -- they are still provided by the caller. But then, I'm not a C
> > > > expert, so maybe this opinion is the result of poor breeding? :-)
> > >
> > > What's wrong with (the perfectly legal):
> > >
> > > int
> > > main(void)
> > > {
> > > ...
> > > }
> > >
> > > or does gcc complain about that too?
> >
> > No it doesn't and it seems to me to be more correct than using a gcc macro.
>
> __unused is a FreeBSD macro IIRC.
Yes, though it maps to the __unused__ attribute to shut up gcc so
in this context it's the same :-)
> result, and I think Jacques has more experience on these issues, I
I guess he's the person to explain why we do this for main() then
since it doesn't make sense to me to do it when there are perfectly
valid C constructs that are more concise and portable.
--
Paul Richards
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050106152714.GB45476>
