From 3c33442c0888a19aa434491dc4bde57801622363 Mon Sep 17 00:00:00 2001 From: jakub Date: Sat, 5 Jun 2010 15:02:32 +0000 Subject: [PATCH] PR c++/44361 * 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 | 80 ++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 gcc/testsuite/c-c++-common/Wunused-var-9.c 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 index 00000000000..b2cdc4510e1 --- /dev/null +++ b/gcc/testsuite/c-c++-common/Wunused-var-9.c @@ -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; +} -- 2.11.0