/* Test case by Joseph S. Myers <jsm28@cam.ac.uk>. */ #undef __USE_STRING_INLINES #define __USE_STRING_INLINES #include <string.h> #include <stdlib.h> #include <stdio.h> #include <libc-diag.h> int 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; return 0; }