summaryrefslogtreecommitdiff
path: root/gcc/cp/cp-objcp-common.c
diff options
context:
space:
mode:
authormark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>2015-09-14 09:49:47 +0000
committermark <mark@138bc75d-0d04-0410-961f-82ee72b054a4>2015-09-14 09:49:47 +0000
commit1bca8cbd0c68366f07277f98ce6963e10c2aa617 (patch)
tree69691ab92ba1ad50826f35684fac28f7495db523 /gcc/cp/cp-objcp-common.c
parenta6b9137e4b11feb3150ae0addf5533755201d210 (diff)
downloadgcc-1bca8cbd0c68366f07277f98ce6963e10c2aa617.tar.gz
PR28901 -Wunused-variable ignores unused const initialised variables in C
12 years ago it was decided that -Wunused-variable shouldn't warn about static const variables because some code used const static char rcsid[] strings which were never used but wanted in the code anyway. But as the bug points out this hides some real bugs. These days the usage of rcsids is not very popular anymore. So this patch changes the default to warn about unused static const variables in C with -Wunused-variable. And it adds a new option -Wno-unused-const-variable to turn this warning off. For C++ this new warning is off by default, since const variables can be used as #defines in C++. New testcases for the new defaults in C and C++ are included testing the new warning and suppressing it with an unused attribute or using -Wno-unused-const-variable. gcc/ChangeLog PR c/28901 * toplev.c (check_global_declaration): Check and use warn_unused_const_variable. * doc/invoke.texi (Warning Options): Add -Wunused-const-variable. (-Wunused-variable): Remove non-constant. For C implies -Wunused-const-variable. (-Wunused-const-variable): New. gcc/c-family/ChangeLog PR c/28901 * c.opt (Wunused-variable): Option from common.opt. (Wunused-const-variable): New option. gcc/cp/ChangeLog PR c/28901 * cp-objcp-common.c (cxx_warn_unused_global_decl): Remove hard-coded VAR_P TREE_READONLY override. gcc/testsuite/ChangeLog PR c/28901 * g++.dg/warn/unused-variable-1.C: New test. * g++.dg/warn/unused-variable-2.C: Likewise. * gcc.dg/unused-4.c: Adjust warning for static const. * gcc.dg/unused-variable-1.c: New test. * gcc.dg/unused-variable-2.c: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227742 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/cp-objcp-common.c')
-rw-r--r--gcc/cp/cp-objcp-common.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/gcc/cp/cp-objcp-common.c b/gcc/cp/cp-objcp-common.c
index 2cab89c1552..808defdb986 100644
--- a/gcc/cp/cp-objcp-common.c
+++ b/gcc/cp/cp-objcp-common.c
@@ -62,10 +62,6 @@ cxx_warn_unused_global_decl (const_tree decl)
if (DECL_IN_SYSTEM_HEADER (decl))
return false;
- /* Const variables take the place of #defines in C++. */
- if (VAR_P (decl) && TREE_READONLY (decl))
- return false;
-
return true;
}