From d3d6f724f2c524bd2e82f14ff97ee3cfd0a182eb Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Fri, 16 Feb 2007 01:19:23 +0000 Subject: [PATCH] re PR middle-end/30729 (value computed is not used warning with unused result of va_arg) 2007-02-15 Andrew Pinski 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 Andrew Pinski PR middle-end/30729 * gcc.dg/Wunused-value-2.c: New testcase. From-SVN: r122027 --- gcc/ChangeLog | 6 ++++++ gcc/stmt.c | 1 + gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/Wunused-value-2.c | 18 ++++++++++++++++++ 4 files changed, 30 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/Wunused-value-2.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f36c288bc95..152407b26c5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2007-02-15 Andrew Pinski + + 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 * lower-subreg.c (move_eh_region_note): New static function. diff --git a/gcc/stmt.c b/gcc/stmt.c index 9578293d7ae..9b4e24f4c05 100644 --- a/gcc/stmt.c +++ b/gcc/stmt.c @@ -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 191cb00bf62..20c55913da0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-02-15 Andrew Pinski + + PR middle-end/30729 + * gcc.dg/Wunused-value-2.c: New testcase. + 2007-02-15 Ian Lance Taylor * 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 00000000000..4858bfade72 --- /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 + +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; +} + + -- 2.11.4.GIT