diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/stmt.c | 1 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/Wunused-value-2.c | 18 |
4 files changed, 30 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f36c288..152407b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com> + + PR middle-end/30729 + * stmt.c (warn_if_unused_value): VA_ARG_EXPR has side + effects unknown to this function, return early. + 2007-02-15 Ian Lance Taylor <iant@google.com> * lower-subreg.c (move_eh_region_note): New static function. @@ -1425,6 +1425,7 @@ warn_if_unused_value (tree exp, location_t locus) case TRY_CATCH_EXPR: case WITH_CLEANUP_EXPR: case EXIT_EXPR: + case VA_ARG_EXPR: return 0; case BIND_EXPR: diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 191cb00..20c5591 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-02-15 Andrew Pinski <andrew_pinski@playstation.sony.com> + + PR middle-end/30729 + * gcc.dg/Wunused-value-2.c: New testcase. + 2007-02-15 Ian Lance Taylor <iant@google.com> * g++.dg/eh/subreg-1.C: New test. diff --git a/gcc/testsuite/gcc.dg/Wunused-value-2.c b/gcc/testsuite/gcc.dg/Wunused-value-2.c new file mode 100644 index 0000000..4858bfa --- /dev/null +++ b/gcc/testsuite/gcc.dg/Wunused-value-2.c @@ -0,0 +1,18 @@ +/* Test -Wunused-value. Bug 30729. */ +/* { dg-do compile } */ +/* { dg-options "-Wunused-value" } */ +/* Make sure va_arg does not cause a value computed is not used warning + because it has side effects. */ +#include <stdarg.h> + +int f(int t, ...) +{ + va_list a; + va_start (a, t); + va_arg(a, int);/* { dg-bogus "value computed is not used" } */ + int t1 = va_arg(a, int); + va_end(a); + return t1; +} + + |