summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2002-02-21 20:23:48 +0000
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>2002-02-21 20:23:48 +0000
commit47ed174f8c9f542fbe9fc20f5f2031059724ff8c (patch)
treeb43c83e9ddfdda467df3d0c0ff6814391dc66cee /gcc
parent78498602c701766719472f1d0c205d95d36e5791 (diff)
downloadgcc-47ed174f8c9f542fbe9fc20f5f2031059724ff8c.tar.gz
PR c/4697:
* stmt.c (warn_if_unused_value): Move side effects test once more. * gcc.dg/20020220-2.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49937 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/stmt.c12
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/20020220-2.c12
4 files changed, 27 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e64cbb96a81..7570480e189 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2002-02-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/4697:
+ * stmt.c (warn_if_unused_value): Move side effects test once more.
+
2002-02-20 Torbjorn Granlund <tege@swox.com>
* config/avr/avr.md: Add more patterns for mized-mode add and subtract
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 17b4d0b1972..fc968bcbab3 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -2303,10 +2303,6 @@ warn_if_unused_value (exp)
if (VOID_TYPE_P (TREE_TYPE (exp)))
return 0;
- /* If this is an expression with side effects, don't warn. */
- if (TREE_SIDE_EFFECTS (exp))
- return 0;
-
switch (TREE_CODE (exp))
{
case PREINCREMENT_EXPR:
@@ -2366,7 +2362,7 @@ warn_if_unused_value (exp)
|| TREE_CODE (tem) == CALL_EXPR)
return 0;
}
- goto warn;
+ goto maybe_warn;
case INDIRECT_REF:
/* Don't warn about automatic dereferencing of references, since
@@ -2389,7 +2385,11 @@ warn_if_unused_value (exp)
&& TREE_CODE_LENGTH (TREE_CODE (exp)) == 0)
return 0;
- warn:
+ maybe_warn:
+ /* If this is an expression with side effects, don't warn. */
+ if (TREE_SIDE_EFFECTS (exp))
+ return 0;
+
warning_with_file_and_line (emit_filename, emit_lineno,
"value computed is not used");
return 1;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a6653596fa6..c837e206d25 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2002-02-21 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc.dg/20020220-2.c: New test.
+
2002-02-20 Alexandre Oliva <aoliva@redhat.com>
* gcc.c-torture/compile/20020110.c: New test.
diff --git a/gcc/testsuite/gcc.dg/20020220-2.c b/gcc/testsuite/gcc.dg/20020220-2.c
new file mode 100644
index 00000000000..c6c57a92136
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/20020220-2.c
@@ -0,0 +1,12 @@
+/* PR c/4697
+ Test whether value computed not used warning is given for compound
+ expression. */
+/* { dg-do compile } */
+/* { dg-options "-O2 -Wunused" } */
+
+int b;
+int foo (int a)
+{
+ a = a + 1, 5 * b; /* { dg-warning "value computed is not used" } */
+ return a;
+}