This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: Warning about -Wmain for local variables
- From: Jonathan Wakely <jwakely dot gcc at gmail dot com>
- To: Prathamesh Kulkarni <prathamesh dot kulkarni at linaro dot org>
- Cc: gcc-help <gcc-help at gcc dot gnu dot org>
- Date: Wed, 30 May 2018 13:42:15 +0100
- Subject: Re: Warning about -Wmain for local variables
- References: <CAAgBjM=_+e15aot6rZVEF3zZuNi5c9d2UFEQu5aSdF6nD-shgw@mail.gmail.com>
On 30 May 2018 at 11:40, Prathamesh Kulkarni wrote:
> gcc with -Wmain warns for local variables named main.
>
> int foo()
> {
> int main = 0;
> return main;
> }
>
> a.c: In function ‘foo’:
> a.c:3:7: warning: ‘main’ is usually a function [-Wmain]
> int main = 1;
> ^~~~
>
> Is this intended ? I assumed that the warning's intent was for
> diagnosing variable named main having only external linkage.
It was added more than 20 years ago by https://gcc.gnu.org/r13517 and
looks like it has always worked as it does now, without considering
linkage.
Only warning for entities with external linkage seems reasonable to
me, but that would be for the C front-end or diagnostics maintainers
to decide.