From: jakub Date: Sun, 26 Apr 2009 18:51:07 +0000 (+0000) Subject: PR c/39889 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a1d07e97417fb905496f727f3a78b89e2eaf6397;p=thirdparty%2Fgcc.git PR c/39889 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR. * gcc.dg/Wunused-value-3.c: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146811 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 480a6bfac08b..6770f2313664 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,4 +1,9 @@ -2009-04-22 Jakub Jelinek +2009-04-26 Jakub Jelinek + + PR c/39889 + * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR. + +2009-04-26 Jakub Jelinek * 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 d39b7138d24f..6c2a442f7836 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,15 @@ +2009-04-26 Jakub Jelinek + + * 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 PR fortran/39688 diff --git a/gcc/stmt.c b/gcc/stmt.c index e2688efadadf..6dc32fdfc12e 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 5faeffcfeb14..7acde8de79ea 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,14 +1,7 @@ 2009-04-26 Jakub Jelinek - * 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 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 000000000000..333ddea4ffd5 --- /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" } */ +}