Blame string/bug-strncat1.c

Packit Service 82fcde
/* Test case by Joseph S. Myers <jsm28@cam.ac.uk>.  */
Packit Service 82fcde
#undef __USE_STRING_INLINES
Packit Service 82fcde
#define __USE_STRING_INLINES
Packit Service 82fcde
#include <stdio.h>
Packit Service 82fcde
#include <stdlib.h>
Packit Service 82fcde
#include <string.h>
Packit Service 82fcde
#include <libc-diag.h>
Packit Service 82fcde
Packit Service 82fcde
char d[3] = "\0\1\2";
Packit Service 82fcde
Packit Service 82fcde
int
Packit Service 82fcde
main (void)
Packit Service 82fcde
{
Packit Service 82fcde
  DIAG_PUSH_NEEDS_COMMENT;
Packit Service 82fcde
#if __GNUC_PREREQ (8, 0)
Packit Service 82fcde
  /* GCC 8 warns about strncat truncating output; this is deliberately
Packit Service 82fcde
     tested here.  */
Packit Service 82fcde
  DIAG_IGNORE_NEEDS_COMMENT (8, "-Wstringop-truncation");
Packit Service 82fcde
#endif
Packit Service 82fcde
  strncat (d, "\5\6", 1);
Packit Service 82fcde
  DIAG_POP_NEEDS_COMMENT;
Packit Service 82fcde
  if (d[0] != '\5')
Packit Service 82fcde
    {
Packit Service 82fcde
      puts ("d[0] != '\\5'");
Packit Service 82fcde
      exit (1);
Packit Service 82fcde
    }
Packit Service 82fcde
  if (d[1] != '\0')
Packit Service 82fcde
    {
Packit Service 82fcde
      puts ("d[1] != '\\0'");
Packit Service 82fcde
      exit (1);
Packit Service 82fcde
    }
Packit Service 82fcde
  if (d[2] != '\2')
Packit Service 82fcde
    {
Packit Service 82fcde
      puts ("d[2] != '\\2'");
Packit Service 82fcde
      exit (1);
Packit Service 82fcde
    }
Packit Service 82fcde
Packit Service 82fcde
  return 0;
Packit Service 82fcde
}