re PR middle-end/30729 (value computed is not used warning with unused result of...
authorAndrew Pinski <andrew_pinski@playstation.sony.com>
Fri, 16 Feb 2007 01:19:23 +0000 (01:19 +0000)
committerAndrew Pinski <pinskia@gcc.gnu.org>
Fri, 16 Feb 2007 01:19:23 +0000 (17:19 -0800)
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  Andrew Pinski  <andrew_pinski@playstation.sony.com>

        PR middle-end/30729
        * gcc.dg/Wunused-value-2.c: New testcase.

From-SVN: r122027

gcc/ChangeLog
gcc/stmt.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/Wunused-value-2.c [new file with mode: 0644]

index f36c288bc95bfeb632f4410b7421b75a5b7146f8..152407b26c53bf50a6810db6e4e76eba2e59c34a 100644 (file)
@@ -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.
index 9578293d7ae996ededd82b5acccfca332df32151..9b4e24f4c0591614ee419f6ccd3538da890ddbfe 100644 (file)
@@ -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:
index 191cb00bf6211d1e14502d14c908055274a99bd6..20c55913da0e75a43b8372d9c9c7d1185cc86020 100644 (file)
@@ -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 (file)
index 0000000..4858bfa
--- /dev/null
@@ -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;
+}
+
+