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. Thanks, Prathamesh