/* Test case by Joseph S. Myers . */ #undef __USE_STRING_INLINES #define __USE_STRING_INLINES #include #include #include #include char d[3] = "\0\1\2"; int main (void) { DIAG_PUSH_NEEDS_COMMENT; #if __GNUC_PREREQ (8, 0) /* GCC 8 warns about strncat truncating output; this is deliberately tested here. */ DIAG_IGNORE_NEEDS_COMMENT (8, "-Wstringop-truncation"); #endif strncat (d, "\5\6", 1); DIAG_POP_NEEDS_COMMENT; if (d[0] != '\5') { puts ("d[0] != '\\5'"); exit (1); } if (d[1] != '\0') { puts ("d[1] != '\\0'"); exit (1); } if (d[2] != '\2') { puts ("d[2] != '\\2'"); exit (1); } return 0; }