From 11e1dba8fa762cced8c6947d2398d06c816ebaf1 Mon Sep 17 00:00:00 2001 From: prathamesh3492 Date: Wed, 15 Aug 2018 15:52:22 +0000 Subject: [PATCH] 2018-08-15 Prathamesh Kulkarni c/ * c-decl.c (start_decl): Do not warn if variables is named as main and is a local variable. testsuite/ * gcc.dg/wmain.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263562 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/c/ChangeLog | 5 +++++ gcc/c/c-decl.c | 3 ++- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/gcc.dg/wmain.c | 10 ++++++++++ 4 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.dg/wmain.c diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index 59312062d96c..be714d28b4d4 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,8 @@ +2018-08-15 Prathamesh Kulkarni + + * c-decl.c (start_decl): Do not warn if variables is named as main + and is a local variable. + 2018-08-15 Iain Sandoe PR c/19315 diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c index da42add07327..1bbccddab31d 100644 --- a/gcc/c/c-decl.c +++ b/gcc/c/c-decl.c @@ -4700,7 +4700,8 @@ start_decl (struct c_declarator *declarator, struct c_declspecs *declspecs, if (expr) add_stmt (fold_convert (void_type_node, expr)); - if (TREE_CODE (decl) != FUNCTION_DECL && MAIN_NAME_P (DECL_NAME (decl))) + if (TREE_CODE (decl) != FUNCTION_DECL && MAIN_NAME_P (DECL_NAME (decl)) + && TREE_PUBLIC (decl)) warning (OPT_Wmain, "%q+D is usually a function", decl); if (initialized) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 18bb966ca42d..0bcf92fe7d2e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2018-08-15 Prathamesh Kulkarni + + * gcc.dg/wmain.c: New test. + 2018-08-15 Iain Sandoe PR c/19315 diff --git a/gcc/testsuite/gcc.dg/wmain.c b/gcc/testsuite/gcc.dg/wmain.c new file mode 100644 index 000000000000..06fc26fd3981 --- /dev/null +++ b/gcc/testsuite/gcc.dg/wmain.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-options "-Wall" } */ + +int main; /* { dg-warning "'main' is usually a function" } */ + +int foo() +{ + int main = 1; /* { dg-bogus "'main' is usually a function" } */ + return main; +} -- 2.47.2