diff options
author | Joseph Myers <joseph@codesourcery.com> | 2018-06-20 22:18:22 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2018-06-20 22:18:22 +0000 |
commit | 1760daadda047a5fac43c7902ca2cd924612dea7 (patch) | |
tree | 1a21c0dc151627dbdeb0b5684fa9b297ca60adcb | |
parent | 209ae17c60a905f2b6e951d6609a898f4b9891f6 (diff) | |
download | glibc-1760daadda047a5fac43c7902ca2cd924612dea7.tar.gz glibc-1760daadda047a5fac43c7902ca2cd924612dea7.tar.xz glibc-1760daadda047a5fac43c7902ca2cd924612dea7.zip |
Fix bug-strspn1.c, bug-strpbrk1.c build with GCC mainline.
Building the testsuite with GCC mainline fails with: bug-strspn1.c: In function 'main': bug-strspn1.c:14:3: error: right-hand operand of comma expression has no effect [-Werror=unused-value] strspn (b++, ""); ^~~~~~~~~~~~~~~~ and a similar error for bug-strpbrk1.c. I'm not sure what GCC change introduced this, and the wording of the message is a bit off (in the source it's not a comma expression, that must reflect GCC's IR). But the warning is correct (strspn is a pure function, the call is useless, and if there wasn't an argument with a side effect much older GCC would have warned); the point of the test is to verify that the side effect in an argument still occurs for this useless call that can otherwise be optimized to an (unused) constant (testing for a bug there once was in an old strspn macro). This patch duly arranges for the warning to be disabled for this code. Tested with build-many-glibcs.py for aarch64-linux-gnu. * string/bug-strpbrk1.c: Include <libc-diag.h>. (main): Disable -Wunused-value around call to strpbrk. * string/bug-strspn1.c: Include <libc-diag.h>. (main): Disable -Wunused-value around call to strspn.
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | string/bug-strpbrk1.c | 8 | ||||
-rw-r--r-- | string/bug-strspn1.c | 8 |
3 files changed, 23 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog index 479e90fbf3..ce0266a35e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2018-06-20 Joseph Myers <joseph@codesourcery.com> + + * string/bug-strpbrk1.c: Include <libc-diag.h>. + (main): Disable -Wunused-value around call to strpbrk. + * string/bug-strspn1.c: Include <libc-diag.h>. + (main): Disable -Wunused-value around call to strspn. + 2018-06-20 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com> Gabriel F. T. Gomes <gabriel@inconstante.eti.br> diff --git a/string/bug-strpbrk1.c b/string/bug-strpbrk1.c index 28238b0f50..8e909a1e21 100644 --- a/string/bug-strpbrk1.c +++ b/string/bug-strpbrk1.c @@ -4,6 +4,7 @@ #include <string.h> #include <stdlib.h> #include <stdio.h> +#include <libc-diag.h> int main (void) @@ -11,7 +12,14 @@ main (void) const char *a = "abc"; const char *b = a; + DIAG_PUSH_NEEDS_COMMENT; + /* GCC 9 correctly warns that this call to strpbrk is useless. That + is deliberate; this test is verifying that a side effect in an + argument still occurs when the call itself is useless and could + be optimized to return a constant. */ + DIAG_IGNORE_NEEDS_COMMENT (9, "-Wunused-value"); strpbrk (b++, ""); + DIAG_POP_NEEDS_COMMENT; if (b != a + 1) return 1; diff --git a/string/bug-strspn1.c b/string/bug-strspn1.c index a657bafc43..e3487ab8f9 100644 --- a/string/bug-strspn1.c +++ b/string/bug-strspn1.c @@ -4,6 +4,7 @@ #include <string.h> #include <stdlib.h> #include <stdio.h> +#include <libc-diag.h> int main (void) @@ -11,7 +12,14 @@ main (void) const char *a = "abc"; const char *b = a; + DIAG_PUSH_NEEDS_COMMENT; + /* GCC 9 correctly warns that this call to strspn is useless. That + is deliberate; this test is verifying that a side effect in an + argument still occurs when the call itself is useless and could + be optimized to return a constant. */ + DIAG_IGNORE_NEEDS_COMMENT (9, "-Wunused-value"); strspn (b++, ""); + DIAG_POP_NEEDS_COMMENT; if (b != a + 1) return 1; |