mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-08 12:10:39 +08:00
re PR c++/10416 ('unused variable' warning ignores ctor/dtor side-effects)
/cp 2012-08-20 Paolo Carlini <paolo.carlini@oracle.com> PR c++/10416 * decl.c (poplevel): Check TYPE_HAS_NONTRIVIAL_DESTRUCTOR for Wunused_variable too. /testsuite 2012-08-20 Paolo Carlini <paolo.carlini@oracle.com> PR c++/10416 * g++.dg/warn/Wunused-var-17.C: New. From-SVN: r190538
This commit is contained in:
parent
d88513eaf7
commit
d952d7ad31
@ -1,3 +1,9 @@
|
||||
2012-08-20 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/10416
|
||||
* decl.c (poplevel): Check TYPE_HAS_NONTRIVIAL_DESTRUCTOR for
|
||||
Wunused_variable too.
|
||||
|
||||
2012-08-20 Diego Novillo <dnovillo@google.com>
|
||||
|
||||
* decl.c (poplevel): Start TV_NAME_LOOKUP conditionally.
|
||||
|
@ -621,16 +621,16 @@ poplevel (int keep, int reverse, int functionbody)
|
||||
if (TREE_CODE (decl) == VAR_DECL
|
||||
&& (! TREE_USED (decl) || !DECL_READ_P (decl))
|
||||
&& ! DECL_IN_SYSTEM_HEADER (decl)
|
||||
&& DECL_NAME (decl) && ! DECL_ARTIFICIAL (decl))
|
||||
&& DECL_NAME (decl) && ! DECL_ARTIFICIAL (decl)
|
||||
&& TREE_TYPE (decl) != error_mark_node
|
||||
&& (!CLASS_TYPE_P (TREE_TYPE (decl))
|
||||
|| !TYPE_HAS_NONTRIVIAL_DESTRUCTOR (TREE_TYPE (decl))))
|
||||
{
|
||||
if (! TREE_USED (decl))
|
||||
warning (OPT_Wunused_variable, "unused variable %q+D", decl);
|
||||
else if (DECL_CONTEXT (decl) == current_function_decl
|
||||
&& TREE_TYPE (decl) != error_mark_node
|
||||
&& TREE_CODE (TREE_TYPE (decl)) != REFERENCE_TYPE
|
||||
&& errorcount == unused_but_set_errorcount
|
||||
&& (!CLASS_TYPE_P (TREE_TYPE (decl))
|
||||
|| !TYPE_HAS_NONTRIVIAL_DESTRUCTOR (TREE_TYPE (decl))))
|
||||
&& errorcount == unused_but_set_errorcount)
|
||||
{
|
||||
warning (OPT_Wunused_but_set_variable,
|
||||
"variable %q+D set but not used", decl);
|
||||
|
@ -1,3 +1,8 @@
|
||||
2012-08-20 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
PR c++/10416
|
||||
* g++.dg/warn/Wunused-var-17.C: New.
|
||||
|
||||
2012-08-20 Patrick Marlier <patrick.marlier@gmail.com>
|
||||
|
||||
PR middle-end/53992
|
||||
|
4
gcc/testsuite/g++.dg/warn/Wunused-var-17.C
Normal file
4
gcc/testsuite/g++.dg/warn/Wunused-var-17.C
Normal file
@ -0,0 +1,4 @@
|
||||
// PR c++/10416
|
||||
// { dg-options "-Wunused" }
|
||||
|
||||
void f () { struct atend { ~atend () { __builtin_printf("leaving f\n"); } } a; }
|
Loading…
x
Reference in New Issue
Block a user