(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.c-torture/
execute/
builtins/
lib/
strncat.c
       1  extern void abort(void);
       2  extern int inside_main;
       3  
       4  typedef __SIZE_TYPE__ size_t;
       5  
       6  __attribute__ ((__noinline__))
       7  char *
       8  strncat (char *s1, const char *s2, size_t n)
       9  {
      10    char *dest = s1;
      11    char c = '\0';
      12  #ifdef __OPTIMIZE__
      13    if (inside_main)
      14      abort();
      15  #endif
      16    while (*s1) s1++;
      17    c = '\0';
      18    while (n > 0)
      19      {
      20        c = *s2++;
      21        *s1++ = c;
      22        if (c == '\0')
      23  	return dest;
      24        n--;
      25      }
      26    if (c != '\0')
      27      *s1 = '\0';
      28    return dest;
      29  }