(root)/
gcc-13.2.0/
libiberty/
xstrdup.c
       1  /* xstrdup.c -- Duplicate a string in memory, using xmalloc.
       2     This trivial function is in the public domain.
       3     Ian Lance Taylor, Cygnus Support, December 1995.  */
       4  
       5  /*
       6  
       7  @deftypefn Replacement char* xstrdup (const char *@var{s})
       8  
       9  Duplicates a character string without fail, using @code{xmalloc} to
      10  obtain memory.
      11  
      12  @end deftypefn
      13  
      14  */
      15  
      16  #ifdef HAVE_CONFIG_H
      17  #include "config.h"
      18  #endif
      19  #include <sys/types.h>
      20  #ifdef HAVE_STRING_H
      21  #include <string.h>
      22  #else
      23  # ifdef HAVE_STRINGS_H
      24  #  include <strings.h>
      25  # endif
      26  #endif
      27  #include "ansidecl.h"
      28  #include "libiberty.h"
      29  
      30  char *
      31  xstrdup (const char *s)
      32  {
      33    register size_t len = strlen (s) + 1;
      34    register char *ret = XNEWVEC (char, len);
      35    return (char *) memcpy (ret, s, len);
      36  }