------- Comment #26 from dodji at gcc dot gnu dot org 2010-05-06 06:52 ------- Subject: Bug 18624
Author: dodji Date: Thu May 6 06:52:30 2010 New Revision: 159096 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=159096 Log: C++ support for -Wunused-but-set-variable gcc/cp/ChangeLog: PR 18624 * cp-tree.h (mark_exp_read, mark_rvalue_use, mark_lvalue_use, mark_type_use): Declare ... * expr.c (mark_exp_read, mark_rvalue_use, mark_lvalue_use, mark_type_use): ... new fns. * typeck.c (cxx_sizeof_expr, cxx_alignof_expr): Call mark_type_use. (perform_integral_promotions): Call mark_rvalue_use. (cp_build_unary_op): Call mark_lvalue_use. (decay_conversion): Update comment. Call mark_lvalue. * decl.c (unused_but_set_errorcount): New variable. (poplevel): Issue -Wunused-but-set-variable diagnostics. (duplicate_decls): Merge DECL_READ_P flags. (start_cleanup_fn): Set DECL_READ_P flag. (finish_function): Issue -Wunused-but-set-parameter diagnostics. * tree.c (rvalue): Call mark_rvalue_use. * pt.c (convert_nontype_argument): Likewise. * semantics.c (finish_typeof, finish_decltype_type): Call mark_type_use. (finish_asm_stmt): Call mark_lvalue_use. (finish_expr_stmt): Call mark_exp_read. * call.c (convert_like_real) <ck_identity, ck_user>: Call mark_rvalue_use. (build_x_va_arg): Call mark_lvalue_use. (build_over_call): Call mark_type_use. * init.c (build_new, build_delete): Call mark_value_use. * rtti.c (build_typeid): Call mark_lvalue_use or mark_type_use. (build_dynamic_cast_1): call mark_lvalue_use or mark_rvalue_use. gcc/testsuite/ChangeLog: PR 18624 * g++.dg/warn/Wunused-7.C: Add dg-warning. * g++.dg/template/sfinae16.C: Likewise. * gcc.dg/Wunused-var-1.c: Moved to... * c-c++-common/Wunused-var-1.c: ...here. New test. * gcc.dg/Wunused-var-2.c: Moved to... * c-c++-common/Wunused-var-2.c: ...here. New test. * gcc.dg/Wunused-var-3.c: Moved to... * c-c++-common/Wunused-var-3.c: ...here. New test. * gcc.dg/Wunused-var-4.c: Moved to... * gcc.dg/Wunused-var-1.c: ... here. * gcc.dg/Wunused-var-5.c: Moved to... * c-c++-common/Wunused-var-4.c: ...here. New test. * gcc.dg/Wunused-var-7.c: Moved to... * c-c++-common/Wunused-var-5.c: ...here. New test. * gcc.dg/Wunused-var-6.c: Moved to... * gcc.dg/Wunused-var-2.c: ... here. * c-c++-common/Wunused-var-1.c: New test. * c-c++-common/Wunused-var-2.c: New test. * c-c++-common/Wunused-var-3.c: New test. * c-c++-common/Wunused-var-4.c: New test. * c-c++-common/Wunused-var-5.c: New test. * g++.dg/warn/Wunused-var-1.C: New test. * g++.dg/warn/Wunused-var-2.C: New test. * g++.dg/warn/Wunused-var-3.C: New test. * g++.dg/warn/Wunused-var-4.C: New test. * g++.dg/warn/Wunused-var-5.C: New test. * g++.dg/warn/Wunused-var-6.C: New test. * g++.dg/warn/Wunused-var-7.C: New test. * g++.dg/warn/Wunused-var-8.C: New test. * g++.dg/warn/Wunused-parm-1.C: New test. * g++.dg/warn/Wunused-parm-2.C: New test. * g++.dg/warn/Wunused-parm-3.C: New test. Added: trunk/gcc/testsuite/c-c++-common/Wunused-var-1.c - copied, changed from r159095, trunk/gcc/testsuite/gcc.dg/Wunused-var-1.c trunk/gcc/testsuite/c-c++-common/Wunused-var-2.c - copied, changed from r159095, trunk/gcc/testsuite/gcc.dg/Wunused-var-2.c trunk/gcc/testsuite/c-c++-common/Wunused-var-3.c - copied, changed from r159095, trunk/gcc/testsuite/gcc.dg/Wunused-var-3.c trunk/gcc/testsuite/c-c++-common/Wunused-var-4.c - copied, changed from r159095, trunk/gcc/testsuite/gcc.dg/Wunused-var-7.c trunk/gcc/testsuite/c-c++-common/Wunused-var-5.c - copied, changed from r159095, trunk/gcc/testsuite/gcc.dg/Wunused-var-5.c trunk/gcc/testsuite/g++.dg/warn/Wunused-parm-1.C trunk/gcc/testsuite/g++.dg/warn/Wunused-parm-2.C trunk/gcc/testsuite/g++.dg/warn/Wunused-parm-3.C trunk/gcc/testsuite/g++.dg/warn/Wunused-var-1.C trunk/gcc/testsuite/g++.dg/warn/Wunused-var-2.C trunk/gcc/testsuite/g++.dg/warn/Wunused-var-3.C trunk/gcc/testsuite/g++.dg/warn/Wunused-var-4.C trunk/gcc/testsuite/g++.dg/warn/Wunused-var-5.C - copied, changed from r159095, trunk/gcc/testsuite/gcc.dg/Wunused-var-1.c trunk/gcc/testsuite/g++.dg/warn/Wunused-var-6.C - copied, changed from r159095, trunk/gcc/testsuite/gcc.dg/Wunused-var-2.c trunk/gcc/testsuite/g++.dg/warn/Wunused-var-7.C - copied, changed from r159095, trunk/gcc/testsuite/gcc.dg/Wunused-var-3.c trunk/gcc/testsuite/g++.dg/warn/Wunused-var-8.C - copied, changed from r159095, trunk/gcc/testsuite/gcc.dg/Wunused-var-5.c Removed: trunk/gcc/testsuite/gcc.dg/Wunused-var-3.c trunk/gcc/testsuite/gcc.dg/Wunused-var-4.c trunk/gcc/testsuite/gcc.dg/Wunused-var-5.c trunk/gcc/testsuite/gcc.dg/Wunused-var-6.c trunk/gcc/testsuite/gcc.dg/Wunused-var-7.c Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/call.c trunk/gcc/cp/cp-tree.h trunk/gcc/cp/decl.c trunk/gcc/cp/except.c trunk/gcc/cp/expr.c trunk/gcc/cp/init.c trunk/gcc/cp/pt.c trunk/gcc/cp/rtti.c trunk/gcc/cp/semantics.c trunk/gcc/cp/tree.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/template/sfinae16.C trunk/gcc/testsuite/g++.dg/warn/Wunused-7.C trunk/gcc/testsuite/gcc.dg/Wunused-var-1.c trunk/gcc/testsuite/gcc.dg/Wunused-var-2.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18624