diff options
author | Marek Polacek <polacek@redhat.com> | 2016-03-17 18:43:08 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2016-03-17 18:43:08 +0000 |
commit | 14ba7b28a80d2a0a66668f57a3fab2c205b85cd4 (patch) | |
tree | 34c9f7ad96c0fefcef4b434fd9ea02c14d751202 /gcc | |
parent | ded6091379ad0d03bf5ea26633d501b026615c09 (diff) | |
download | gcc-14ba7b28a80d2a0a66668f57a3fab2c205b85cd4.zip gcc-14ba7b28a80d2a0a66668f57a3fab2c205b85cd4.tar.gz gcc-14ba7b28a80d2a0a66668f57a3fab2c205b85cd4.tar.bz2 |
re PR c/69407 (-Wunused-value on __atomic_fetch_OP and __atomic_OP_fetch)
PR c/69407
* c-common.c (resolve_overloaded_builtin): Set TREE_USED for the fetch
operations.
* gcc.dg/atomic-op-6.c: New test.
From-SVN: r234304
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/c-family/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/c-family/c-common.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/atomic-op-6.c | 11 |
4 files changed, 26 insertions, 0 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog index d00d9d9..e7956e0 100644 --- a/gcc/c-family/ChangeLog +++ b/gcc/c-family/ChangeLog @@ -1,3 +1,9 @@ +2016-03-17 Marek Polacek <polacek@redhat.com> + + PR c/69407 + * c-common.c (resolve_overloaded_builtin): Set TREE_USED for the fetch + operations. + 2016-03-14 Jason Merrill <jason@redhat.com> * c-cppbuiltin.c (c_cpp_builtins): Set __cpp_hex_float. diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c index 08b761c..30c815d 100644 --- a/gcc/c-family/c-common.c +++ b/gcc/c-family/c-common.c @@ -11445,6 +11445,10 @@ resolve_overloaded_builtin (location_t loc, tree function, && orig_code != BUILT_IN_ATOMIC_STORE_N) result = sync_resolve_return (first_param, result, orig_format); + if (fetch_op) + /* Prevent -Wunused-value warning. */ + TREE_USED (result) = true; + /* If new_return is set, assign function to that expr and cast the result to void since the generic interface returned void. */ if (new_return) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b3c16b5..4fa5519 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2016-03-17 Marek Polacek <polacek@redhat.com> + + PR c/69407 + * gcc.dg/atomic-op-6.c: New test. + 2016-03-17 David Malcolm <dmalcolm@redhat.com> PR c/70264 diff --git a/gcc/testsuite/gcc.dg/atomic-op-6.c b/gcc/testsuite/gcc.dg/atomic-op-6.c new file mode 100644 index 0000000..f88c293 --- /dev/null +++ b/gcc/testsuite/gcc.dg/atomic-op-6.c @@ -0,0 +1,11 @@ +/* Test we don't generate bogus warnings. */ +/* PR c/69407 */ +/* { dg-do compile } */ +/* { dg-options "-Wall -Wextra" } */ + +void +foo (int *p, int a) +{ + __atomic_fetch_add (&p, a, 0); /* { dg-bogus "value computed is not used" } */ + __atomic_add_fetch (&p, a, 0); /* { dg-bogus "value computed is not used" } */ +} |