/* Test whether buffer overflow warnings for __strncat_chk builtin
   are emitted properly.  */
/* { dg-do compile } */
/* { dg-options "-O2 -std=gnu99 -ftrack-macro-expansion=0" } */

extern void abort (void);

#include "../gcc.c-torture/execute/builtins/chk.h"

char buf1[20];
char *q;

void
test (int arg, ...)
{
  char *p = &buf1[10];

  *p = 0;
  strncat (p, "abcdefg", 9);
  *p = 0;
  strncat (p, "abcdefghi", 9);
  *p = 0;
  strncat (p, "abcdefghij", 9);
  *p = 0;
  strncat (p, "abcdefghi", 10);
  *p = 0;
  strncat (p, "abcdefghij", 10); /* { dg-warning "writing 11 bytes into a region of size 10 overflows the destination" } */
  *p = 0;
  strncat (p, "abcdefgh", 11);
  *p = 0;
  strncat (p, "abcdefghijkl", 11); /* { dg-warning "specified bound 11 exceeds destination size 10" } */
  *p = 0;
  strncat (p, q, 9);
  *p = 0;
  strncat (p, q, 10); /* { dg-warning "specified bound 10 equals destination size" } */
  *p = 0;
  strncat (p, q, 11); /* { dg-warning "specified bound 11 exceeds destination size 10" } */
}
