diff options
author | Jakub Jelinek <jakub@gcc.gnu.org> | 2010-06-05 17:02:32 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2010-06-05 17:02:32 +0200 |
commit | 913bf7d152ea277398385a275c88fbe5460351f5 (patch) | |
tree | 3a9e75f68da63a8e3d052114ddc4681ace4a31ed /gcc | |
parent | 82c3c067975d090a1b7f9921235ec100f737c95f (diff) | |
download | gcc-913bf7d152ea277398385a275c88fbe5460351f5.zip gcc-913bf7d152ea277398385a275c88fbe5460351f5.tar.gz gcc-913bf7d152ea277398385a275c88fbe5460351f5.tar.bz2 |
re PR c++/44361 (-Wunused-but-set-variable vs. explicit void cast)
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.
From-SVN: r160318
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/testsuite/c-c++-common/Wunused-var-9.c | 80 |
1 files changed, 80 insertions, 0 deletions
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 0000000..b2cdc45 --- /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; +} |