OSDN Git Service

PR c++/44361
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 5 Jun 2010 15:02:32 +0000 (15:02 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 5 Jun 2010 15:02:32 +0000 (15:02 +0000)
* c-typeck.c (mark_exp_read): Handle C_MAYBE_CONST_EXPR.
* c-parser.c (c_parser_postfix_expression): Call mark_exp_read on
statement expression.

* c-c++-common/Wunused-var-9.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160318 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/c-c++-common/Wunused-var-9.c [new file with mode: 0644]

diff --git a/gcc/testsuite/c-c++-common/Wunused-var-9.c b/gcc/testsuite/c-c++-common/Wunused-var-9.c
new file mode 100644 (file)
index 0000000..b2cdc45
--- /dev/null
@@ -0,0 +1,80 @@
+/* { dg-options "-Wunused" } */
+/* { dg-do compile } */
+
+int f1 (int *, int);
+int f2 (int *);
+int f3 (int *);
+
+int
+f4 (int x)
+{
+  int a, n = 0;
+  int b;
+  for (a = f1 (&b, x); f2 (&b); (void) (a = f3 (&b)))
+    n++;
+  return n;
+}
+
+void
+f5 (int x)
+{
+  int a;
+  a = x;
+  (void) (a = x);
+}
+
+void
+f6 (int x)
+{
+  int a;       /* { dg-warning "set but not used" } */
+  a = x;
+}
+
+void
+f7 (int x)
+{
+  int a;
+  ({ a = x; });
+}
+
+int
+f8 (int x)
+{
+  int a;
+  int b = ({ a = x; });
+  return b;
+}
+
+int v;
+
+void
+f9 (int x)
+{
+  int a;
+  ({ v++, a = x; });
+}
+
+int
+f10 (int x)
+{
+  int a;
+  int b = ({ v++, a = x; });
+  return b;
+}
+
+void
+f11 (int x)
+{
+  int a;
+  a = x;
+  ({ v++, a; });
+}
+
+int
+f12 (int x)
+{
+  int a;
+  a = x;
+  int b = ({ v++, a; });
+  return b;
+}