modernc.org/cc@v1.0.1/testdata/gcc-6.3.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strncpy.c (about)

     1  extern void abort(void);
     2  extern int inside_main;
     3  
     4  typedef __SIZE_TYPE__ size_t;
     5  
     6  __attribute__ ((__noinline__))
     7  char *
     8  strncpy(char *s1, const char *s2, size_t n)
     9  {
    10    char *dest = s1;
    11  #ifdef __OPTIMIZE__
    12    if (inside_main)
    13      abort();
    14  #endif
    15    for (; *s2 && n; n--)
    16      *s1++ = *s2++;
    17    while (n--)
    18      *s1++ = 0;
    19    return dest;
    20  }
    21