aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2009-04-26 20:51:07 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2009-04-26 20:51:07 +0200
commit92061771a2216bb6fd9062a2f920a3f2194b5cee (patch)
tree6399922f5183f7307326645bf3146bd07174447d
parent77f2a97066c469e868d6518e96c353f71aa28813 (diff)
downloadgcc-92061771a2216bb6fd9062a2f920a3f2194b5cee.zip
gcc-92061771a2216bb6fd9062a2f920a3f2194b5cee.tar.gz
gcc-92061771a2216bb6fd9062a2f920a3f2194b5cee.tar.bz2
re PR c/39889 (Bogus -Wunused-value warning)
PR c/39889 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR. * gcc.dg/Wunused-value-3.c: New test. From-SVN: r146811
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/fortran/ChangeLog12
-rw-r--r--gcc/stmt.c1
-rw-r--r--gcc/testsuite/ChangeLog11
-rw-r--r--gcc/testsuite/gcc.dg/Wunused-value-3.c9
5 files changed, 30 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 480a6bf..6770f23 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,9 @@
-2009-04-22 Jakub Jelinek <jakub@redhat.com>
+2009-04-26 Jakub Jelinek <jakub@redhat.com>
+
+ PR c/39889
+ * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR.
+
+2009-04-26 Jakub Jelinek <jakub@redhat.com>
* tree-nested.c (get_nonlocal_vla_type): If not optimizing, call
note_nonlocal_vla_type for nonlocal VLAs.
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index d39b713..6c2a442 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,15 @@
+2009-04-26 Jakub Jelinek <jakub@redhat.com>
+
+ * trans-decl.c: Include pointer-set.h.
+ (nonlocal_dummy_decl_pset, tree nonlocal_dummy_decls): New variables.
+ (gfc_nonlocal_dummy_array_decl): New function.
+ (gfc_get_symbol_decl): Call it for non-local dummy args with saved
+ descriptor.
+ (gfc_get_symbol_decl): Set DECL_BY_REFERENCE when needed.
+ (gfc_generate_function_code): Initialize nonlocal_dummy_decl{s,_pset},
+ chain it to outermost block's vars, destroy it afterwards.
+ * Make-lang.in (trans-decl.o): Depend on pointer-set.h.
+
2009-04-25 Janus Weil <janus@gcc.gnu.org>
PR fortran/39688
diff --git a/gcc/stmt.c b/gcc/stmt.c
index e2688ef..6dc32fd 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -1418,6 +1418,7 @@ warn_if_unused_value (const_tree exp, location_t locus)
goto restart;
case SAVE_EXPR:
+ case NON_LVALUE_EXPR:
exp = TREE_OPERAND (exp, 0);
goto restart;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5faeffc..7acde8d 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,14 +1,7 @@
2009-04-26 Jakub Jelinek <jakub@redhat.com>
- * trans-decl.c: Include pointer-set.h.
- (nonlocal_dummy_decl_pset, tree nonlocal_dummy_decls): New variables.
- (gfc_nonlocal_dummy_array_decl): New function.
- (gfc_get_symbol_decl): Call it for non-local dummy args with saved
- descriptor.
- (gfc_get_symbol_decl): Set DECL_BY_REFERENCE when needed.
- (gfc_generate_function_code): Initialize nonlocal_dummy_decl{s,_pset},
- chain it to outermost block's vars, destroy it afterwards.
- * Make-lang.in (trans-decl.o): Depend on pointer-set.h.
+ PR c/39889
+ * gcc.dg/Wunused-value-3.c: New test.
2009-04-26 Joseph Myers <joseph@codesourcery.com>
diff --git a/gcc/testsuite/gcc.dg/Wunused-value-3.c b/gcc/testsuite/gcc.dg/Wunused-value-3.c
new file mode 100644
index 0000000..333ddea
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/Wunused-value-3.c
@@ -0,0 +1,9 @@
+/* PR c/39889 */
+/* { dg-do compile } */
+/* { dg-options "-Wunused-value" } */
+
+int x;
+int foo (void)
+{
+ return (1 ? x = 0 : (void) 0), 0; /* { dg-bogus "value computed is not used" } */
+}