------- 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

Reply via email to