------- Comment #9 from ian at gcc dot gnu dot org  2006-12-14 05:49 -------
Subject: Bug 19756

Author: ian
Date: Thu Dec 14 05:49:06 2006
New Revision: 119855

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119855
Log:
        PR c++/19564
        PR c++/19756
gcc/:
        * c-typeck.c (parser_build_binary_op): Move parentheses warnings
        to warn_about_parentheses in c-common.c.
        * c-common.c (warn_about_parentheses): New function.
        * c-common.h (warn_about_parentheses): Declare.
        * doc/invoke.texi (Warning Options): Update -Wparentheses
        description.
gcc/cp/:
        * parser.c (cp_parser_expression_stack_entry): Add field
        lhs_type.
        (cp_parser_binary_expression): Track tree code of left hand side
        of expression.  Use it when calling build_x_binary_op.
        (cp_parser_selection_statement): Add if_p parameter.  Change all
        callers.  Warn about ambiguous else.
        (cp_parser_statement): Add if_p parameter.  Change all callers.
        (cp_parser_implicitly_scoped_statement): Likewise.
        * typeck.c (build_x_binary_op): Add parameters arg1_code and
        arg2_code.  Change all callers.  Call warn_about_parentheses.
        * cp-tree.h (build_x_binary_op): Update declaration.
gcc/testsuite/:
        * g++.dg/warn/Wparentheses-5.C: New test.
        * g++.dg/warn/Wparentheses-6.C: New test.
        * g++.dg/warn/Wparentheses-7.C: New test.
        * g++.dg/warn/Wparentheses-8.C: New test.
        * g++.dg/warn/Wparentheses-9.C: New test.
        * g++.dg/warn/Wparentheses-10.C: New test.
        * g++.dg/warn/Wparentheses-11.C: New test.
        * g++.dg/warn/Wparentheses-12.C: New test.
        * g++.dg/warn/Wparentheses-13.C: New test.
        * g++.dg/warn/Wparentheses-14.C: New test.
        * g++.dg/warn/Wparentheses-15.C: New test.
        * g++.dg/warn/Wparentheses-16.C: New test.
        * g++.dg/warn/Wparentheses-17.C: New test.
        * g++.dg/warn/Wparentheses-18.C: New test.
        * g++.dg/warn/Wparentheses-19.C: New test.
        * g++.dg/warn/Wparentheses-20.C: New test.
        * g++.dg/warn/Wparentheses-21.C: New test.
libstdc++-v3/:
        * include/bits/locale_facets.tcc (num_get<>::_M_extract_float):
        Add parentheses around && within || to avoid warning.
        (num_get<>::_M_extract_int): Likewise.
        (money_get<>::_M_extract): Likewise.
        (num_get<>::do_get(iter_type, iter_type, ios_base&,
        ios_base::iostate&, void*&)): Add parentheses around & within | to
        avoid warning.
        (num_put<>::do_put(iter_type, ios_base&, char_type, const void*)):
        Likewise.
        * include/bits/streambuf_iterator.h (istreambuf_iterator::equal):
        Add parentheses around && within || to avoid warning.
        * libsupc++/tinfo.cc (__do_dyncast): Likewise.
        * src/locale.cc (locale::_S_normalize_category): Likewise.
        * include/bits/stl_tree.h (_Rb_tree<>::_M_insert_unique): Add
        braces to avoid ambiguous else warning.
        * src/strstream.cc (strstreambuf::_M_free): Likewise.
        * src/tree.cc (_Rb_tree_rebalance_for_erase): Likewise.

Added:
    trunk/gcc/testsuite/g++.dg/warn/Wparentheses-10.C
    trunk/gcc/testsuite/g++.dg/warn/Wparentheses-11.C
    trunk/gcc/testsuite/g++.dg/warn/Wparentheses-12.C
    trunk/gcc/testsuite/g++.dg/warn/Wparentheses-13.C
    trunk/gcc/testsuite/g++.dg/warn/Wparentheses-14.C
    trunk/gcc/testsuite/g++.dg/warn/Wparentheses-15.C
    trunk/gcc/testsuite/g++.dg/warn/Wparentheses-16.C
    trunk/gcc/testsuite/g++.dg/warn/Wparentheses-17.C
    trunk/gcc/testsuite/g++.dg/warn/Wparentheses-18.C
    trunk/gcc/testsuite/g++.dg/warn/Wparentheses-19.C
    trunk/gcc/testsuite/g++.dg/warn/Wparentheses-20.C
    trunk/gcc/testsuite/g++.dg/warn/Wparentheses-21.C
    trunk/gcc/testsuite/g++.dg/warn/Wparentheses-5.C
    trunk/gcc/testsuite/g++.dg/warn/Wparentheses-6.C
    trunk/gcc/testsuite/g++.dg/warn/Wparentheses-7.C
    trunk/gcc/testsuite/g++.dg/warn/Wparentheses-8.C
    trunk/gcc/testsuite/g++.dg/warn/Wparentheses-9.C
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/c-common.c
    trunk/gcc/c-common.h
    trunk/gcc/c-typeck.c
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/cp-tree.h
    trunk/gcc/cp/parser.c
    trunk/gcc/cp/pt.c
    trunk/gcc/cp/typeck.c
    trunk/gcc/doc/invoke.texi
    trunk/gcc/testsuite/ChangeLog
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/bits/locale_facets.tcc
    trunk/libstdc++-v3/include/bits/stl_tree.h
    trunk/libstdc++-v3/include/bits/streambuf_iterator.h
    trunk/libstdc++-v3/libsupc++/tinfo.cc
    trunk/libstdc++-v3/src/locale.cc
    trunk/libstdc++-v3/src/strstream.cc
    trunk/libstdc++-v3/src/tree.cc


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19756

Reply via email to