diff options
author | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2008-10-24 10:09:06 +0000 |
---|---|---|
committer | Manuel López-Ibáñez <manu@gcc.gnu.org> | 2008-10-24 10:09:06 +0000 |
commit | 100d537d7a7b5c0ef775d568ce3eefffa72f2c41 (patch) | |
tree | 700b750bc17a07e7749365330c49e0f595aaa435 /gcc/c-tree.h | |
parent | 950d63e12fd0a69731a4c1ae313135f2d47d30a9 (diff) | |
download | gcc-100d537d7a7b5c0ef775d568ce3eefffa72f2c41.zip gcc-100d537d7a7b5c0ef775d568ce3eefffa72f2c41.tar.gz gcc-100d537d7a7b5c0ef775d568ce3eefffa72f2c41.tar.bz2 |
re PR c/7543 (no warning for always-false "if (!a & 0x4)" bitwise and on boolean value)
2008-10-24 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR c/7543
* value-prof.c (gimple_stringop_fixed_value): Use parentheses
around bit operation.
* profile.c (is_edge_inconsistent): Likewise.
* fold-const.c (truth_value_p): Move from here...
* tree.h (truth_value_p): ... to here.
* c-tree.h (c_expr): Update description of original_code.
* c-typeck.c (parser_build_unary_op): Set original_code.
(parser_build_binary_op): Update call to warn_about_parentheses.
* c-common.c (warn_about_parentheses): Take two additional
arguments of the operands. Use a switch. Quote operators
appropriately. Define macro APPEARS_TO_BE_BOOLEAN_EXPR_P.
Add warning about !x | y and !x & y.
* c-common.h (warn_about_parentheses): Update declaration.
cp/
* typeck.c (build_x_binary_op): Update call to
warn_about_parentheses.
* parser.c (cp_parser_binary_expression): Add note about passing
the correct code for unary expressions.
testsuite/
* gcc.dg/Wparentheses-11.c: New.
* g++.dg/warn/Wparentheses-25.C: New. XFAILED.
From-SVN: r141340
Diffstat (limited to 'gcc/c-tree.h')
-rw-r--r-- | gcc/c-tree.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/c-tree.h b/gcc/c-tree.h index 26ef664..b7430af 100644 --- a/gcc/c-tree.h +++ b/gcc/c-tree.h @@ -151,7 +151,7 @@ struct c_expr { /* The value of the expression. */ tree value; - /* Record the original binary operator of an expression, which may + /* Record the original unary/binary operator of an expression, which may have been changed by fold, STRING_CST for unparenthesized string constants, or ERROR_MARK for other expressions (including parenthesized expressions). */ |