On 28 June 2018 at 08:46, Jeff Law <l...@redhat.com> wrote: > On 05/30/2018 09:51 AM, Prathamesh Kulkarni wrote: >> On 30 May 2018 at 18:12, Jonathan Wakely <jwakely....@gmail.com> wrote: >>> 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. >> Thanks for the suggestions. I have attached (untested) patch that warns >> for Wmain if TREE_PUBLIC (decl) is true. >> Does it look OK ? >> >> Thanks, >> Prathamesh >> >> >> wmain-1.txt >> >> >> 2018-05-30 Prathamesh Kulkarni <prathamesh.kulka...@linaro.org> >> >> * c/c-decl.c (start_decl): Add check TREE_PUBLIC (decl) for -Wmain. >> >> testsuite/ >> * gcc.dg/wmain.c: New. > After the usual testing, this is OK. Sorry for late response. I committed the patch after bootstrap+test on x86_64.
Regards, Prathamesh > > jeff