re PR middle-end/7651 (Define -Wextra strictly in terms of other warning flags)
2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org> PR middle-end/7651 * doc/invoke.texi (Wunused-value): Update description. (Wextra): Delete item. * opts.c (set_Wextra): Don't use the value of Wextra to set the value of Wunused-value. * c-typeck.c (c_process_expr_stmt): Don't check extra_warnings. (c_finish_stmt_expr): Don't check extra_warnings. (emit_side_effect_warnings): The caller is responsible to check warn_unused_value. cp/ * cp-gimplify.c (gimplify_expr_stmt): Don't check extra_warnings. Check warn_unused_value just once. From-SVN: r121843
This commit is contained in:
parent
ed41063ab4
commit
27f33b1531
|
@ -1,3 +1,15 @@
|
|||
2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
|
||||
|
||||
PR middle-end/7651
|
||||
* doc/invoke.texi (Wunused-value): Update description.
|
||||
(Wextra): Delete item.
|
||||
* opts.c (set_Wextra): Don't use the value of Wextra to set the
|
||||
value of Wunused-value.
|
||||
* c-typeck.c (c_process_expr_stmt): Don't check extra_warnings.
|
||||
(c_finish_stmt_expr): Don't check extra_warnings.
|
||||
(emit_side_effect_warnings): The caller is responsible to check
|
||||
warn_unused_value.
|
||||
|
||||
2007-02-11 Roger Sayle <roger@eyesopen.com>
|
||||
Matt Thomas <matt@3am-software.com>
|
||||
|
||||
|
|
|
@ -7353,10 +7353,10 @@ emit_side_effect_warnings (tree expr)
|
|||
else if (!TREE_SIDE_EFFECTS (expr))
|
||||
{
|
||||
if (!VOID_TYPE_P (TREE_TYPE (expr)) && !TREE_NO_WARNING (expr))
|
||||
warning (0, "%Hstatement with no effect",
|
||||
warning (OPT_Wunused_value, "%Hstatement with no effect",
|
||||
EXPR_HAS_LOCATION (expr) ? EXPR_LOCUS (expr) : &input_location);
|
||||
}
|
||||
else if (warn_unused_value)
|
||||
else
|
||||
warn_if_unused_value (expr, input_location);
|
||||
}
|
||||
|
||||
|
@ -7381,7 +7381,7 @@ c_process_expr_stmt (tree expr)
|
|||
Warnings for statement expressions will be emitted later, once we figure
|
||||
out which is the result. */
|
||||
if (!STATEMENT_LIST_STMT_EXPR (cur_stmt_list)
|
||||
&& (extra_warnings || warn_unused_value))
|
||||
&& warn_unused_value)
|
||||
emit_side_effect_warnings (expr);
|
||||
|
||||
/* If the expression is not of a type to which we cannot assign a line
|
||||
|
@ -7497,7 +7497,7 @@ c_finish_stmt_expr (tree body)
|
|||
|
||||
/* If we're supposed to generate side effects warnings, process
|
||||
all of the statements except the last. */
|
||||
if (extra_warnings || warn_unused_value)
|
||||
if (warn_unused_value)
|
||||
{
|
||||
for (i = tsi_start (last); !tsi_one_before_end_p (i); tsi_next (&i))
|
||||
emit_side_effect_warnings (tsi_stmt (i));
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2007-02-12 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
|
||||
|
||||
PR middle-end/7651
|
||||
* cp-gimplify.c (gimplify_expr_stmt): Don't check extra_warnings.
|
||||
Check warn_unused_value just once.
|
||||
|
||||
2007-02-11 Mark Mitchell <mark@codesourcery.com>
|
||||
|
||||
PR c++/26988
|
||||
|
|
|
@ -363,16 +363,16 @@ gimplify_expr_stmt (tree *stmt_p)
|
|||
In this case we will not want to emit the gimplified statement.
|
||||
However, we may still want to emit a warning, so we do that before
|
||||
gimplification. */
|
||||
if (stmt && (extra_warnings || warn_unused_value))
|
||||
if (stmt && warn_unused_value)
|
||||
{
|
||||
if (!TREE_SIDE_EFFECTS (stmt))
|
||||
{
|
||||
if (!IS_EMPTY_STMT (stmt)
|
||||
&& !VOID_TYPE_P (TREE_TYPE (stmt))
|
||||
&& !TREE_NO_WARNING (stmt))
|
||||
warning (OPT_Wextra, "statement with no effect");
|
||||
warning (OPT_Wunused_value, "statement with no effect");
|
||||
}
|
||||
else if (warn_unused_value)
|
||||
else
|
||||
warn_if_unused_value (stmt, input_location);
|
||||
}
|
||||
|
||||
|
|
|
@ -2730,10 +2730,14 @@ To suppress this warning use the @samp{unused} attribute
|
|||
|
||||
@item -Wunused-value
|
||||
@opindex Wunused-value
|
||||
Warn whenever a statement computes a result that is explicitly not used.
|
||||
This warning is enabled by @option{-Wall}.
|
||||
Warn whenever a statement computes a result that is explicitly not
|
||||
used. To suppress this warning cast the unused expression to
|
||||
@samp{void}. This includes an expression-statement or the left-hand
|
||||
side of a comma expression that contains no side effects. For example,
|
||||
an expression such as @samp{x[i,j]} will cause a warning, while
|
||||
@samp{x[(void)i,j]} will not.
|
||||
|
||||
To suppress this warning cast the expression to @samp{void}.
|
||||
This warning is enabled by @option{-Wall}.
|
||||
|
||||
@item -Wunused
|
||||
@opindex Wunused
|
||||
|
@ -2908,13 +2912,6 @@ foo (a)
|
|||
@end group
|
||||
@end smallexample
|
||||
|
||||
@item
|
||||
An expression-statement or the left-hand side of a comma expression
|
||||
contains no side effects.
|
||||
To suppress the warning, cast the unused expression to void.
|
||||
For example, an expression such as @samp{x[i,j]} will cause a warning,
|
||||
but @samp{x[(void)i,j]} will not.
|
||||
|
||||
@item
|
||||
An unsigned value is compared against zero with @samp{<} or @samp{>=}.
|
||||
|
||||
|
|
|
@ -1042,7 +1042,6 @@ static void
|
|||
set_Wextra (int setting)
|
||||
{
|
||||
extra_warnings = setting;
|
||||
warn_unused_value = setting;
|
||||
warn_unused_parameter = (setting && maybe_warn_unused_parameter);
|
||||
|
||||
/* We save the value of warn_uninitialized, since if they put
|
||||
|
|
Loading…
Reference in New Issue