summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/stmt.c7
2 files changed, 7 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f82e04a726b..d9794e10da7 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
2000-11-14 Richard Henderson <rth@redhat.com>
+ * stmt.c (warn_if_unused_value): Don't warn if the expression
+ has side effects.
+
* c-typeck.c (c_sizeof): Fold result to c_size_type_node.
(c_sizeof_nowarn, c_alignof, c_alignof_expr): Likewise.
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 4e42e699462..82a390d1da1 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -2004,9 +2004,6 @@ warn_if_unused_value (exp)
case TRY_CATCH_EXPR:
case WITH_CLEANUP_EXPR:
case EXIT_EXPR:
- /* We don't warn about COND_EXPR because it may be a useful
- construct if either arm contains a side effect. */
- case COND_EXPR:
return 0;
case BIND_EXPR:
@@ -2067,6 +2064,10 @@ warn_if_unused_value (exp)
&& TREE_THIS_VOLATILE (exp))
return 0;
+ /* If this is an expression with side effects, don't warn. */
+ if (TREE_SIDE_EFFECTS (exp))
+ return 0;
+
/* If this is an expression which has no operands, there is no value
to be unused. There are no such language-independent codes,
but front ends may define such. */