Skip site navigation (1)Skip section navigation (2)
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>