13e519524SHoward Hinnant// -*- C++ -*-
23e519524SHoward Hinnant//===--------------------------- cstring ----------------------------------===//
33e519524SHoward Hinnant//
4*2946cd70SChandler Carruth// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5*2946cd70SChandler Carruth// See https://llvm.org/LICENSE.txt for license information.
6*2946cd70SChandler Carruth// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
73e519524SHoward Hinnant//
83e519524SHoward Hinnant//===----------------------------------------------------------------------===//
93e519524SHoward Hinnant
103e519524SHoward Hinnant#ifndef _LIBCPP_CSTRING
113e519524SHoward Hinnant#define _LIBCPP_CSTRING
123e519524SHoward Hinnant
133e519524SHoward Hinnant/*
143e519524SHoward Hinnant    cstring synopsis
153e519524SHoward Hinnant
163e519524SHoward HinnantMacros:
173e519524SHoward Hinnant
183e519524SHoward Hinnant    NULL
193e519524SHoward Hinnant
203e519524SHoward Hinnantnamespace std
213e519524SHoward Hinnant{
223e519524SHoward Hinnant
233e519524SHoward HinnantTypes:
243e519524SHoward Hinnant
253e519524SHoward Hinnant    size_t
263e519524SHoward Hinnant
273e519524SHoward Hinnantvoid* memcpy(void* restrict s1, const void* restrict s2, size_t n);
283e519524SHoward Hinnantvoid* memmove(void* s1, const void* s2, size_t n);
293e519524SHoward Hinnantchar* strcpy (char* restrict s1, const char* restrict s2);
303e519524SHoward Hinnantchar* strncpy(char* restrict s1, const char* restrict s2, size_t n);
313e519524SHoward Hinnantchar* strcat (char* restrict s1, const char* restrict s2);
323e519524SHoward Hinnantchar* strncat(char* restrict s1, const char* restrict s2, size_t n);
333e519524SHoward Hinnantint memcmp(const void* s1, const void* s2, size_t n);
343e519524SHoward Hinnantint strcmp (const char* s1, const char* s2);
353e519524SHoward Hinnantint strncmp(const char* s1, const char* s2, size_t n);
363e519524SHoward Hinnantint strcoll(const char* s1, const char* s2);
373e519524SHoward Hinnantsize_t strxfrm(char* restrict s1, const char* restrict s2, size_t n);
383e519524SHoward Hinnantconst void* memchr(const void* s, int c, size_t n);
393e519524SHoward Hinnant      void* memchr(      void* s, int c, size_t n);
403e519524SHoward Hinnantconst char* strchr(const char* s, int c);
413e519524SHoward Hinnant      char* strchr(      char* s, int c);
423e519524SHoward Hinnantsize_t strcspn(const char* s1, const char* s2);
433e519524SHoward Hinnantconst char* strpbrk(const char* s1, const char* s2);
443e519524SHoward Hinnant      char* strpbrk(      char* s1, const char* s2);
453e519524SHoward Hinnantconst char* strrchr(const char* s, int c);
463e519524SHoward Hinnant      char* strrchr(      char* s, int c);
473e519524SHoward Hinnantsize_t strspn(const char* s1, const char* s2);
483e519524SHoward Hinnantconst char* strstr(const char* s1, const char* s2);
493e519524SHoward Hinnant      char* strstr(      char* s1, const char* s2);
503e519524SHoward Hinnantchar* strtok(char* restrict s1, const char* restrict s2);
513e519524SHoward Hinnantvoid* memset(void* s, int c, size_t n);
523e519524SHoward Hinnantchar* strerror(int errnum);
533e519524SHoward Hinnantsize_t strlen(const char* s);
543e519524SHoward Hinnant
553e519524SHoward Hinnant}  // std
563e519524SHoward Hinnant
573e519524SHoward Hinnant*/
583e519524SHoward Hinnant
593e519524SHoward Hinnant#include <__config>
603e519524SHoward Hinnant#include <string.h>
613e519524SHoward Hinnant
62073458b1SHoward Hinnant#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
633e519524SHoward Hinnant#pragma GCC system_header
64073458b1SHoward Hinnant#endif
653e519524SHoward Hinnant
663e519524SHoward Hinnant_LIBCPP_BEGIN_NAMESPACE_STD
673e519524SHoward Hinnant
683e519524SHoward Hinnantusing ::size_t;
693ca2099fSMarshall Clowusing ::memcpy;
703ca2099fSMarshall Clowusing ::memmove;
713e519524SHoward Hinnantusing ::strcpy;
723e519524SHoward Hinnantusing ::strncpy;
733e519524SHoward Hinnantusing ::strcat;
743e519524SHoward Hinnantusing ::strncat;
753ca2099fSMarshall Clowusing ::memcmp;
763e519524SHoward Hinnantusing ::strcmp;
773ca2099fSMarshall Clowusing ::strncmp;
783e519524SHoward Hinnantusing ::strcoll;
793e519524SHoward Hinnantusing ::strxfrm;
8025cb3209SRichard Smithusing ::memchr;
8125cb3209SRichard Smithusing ::strchr;
823e519524SHoward Hinnantusing ::strcspn;
8325cb3209SRichard Smithusing ::strpbrk;
8425cb3209SRichard Smithusing ::strrchr;
853e519524SHoward Hinnantusing ::strspn;
8625cb3209SRichard Smithusing ::strstr;
87e0cf3b9aSEd Schouten#ifndef _LIBCPP_HAS_NO_THREAD_UNSAFE_C_FUNCTIONS
883e519524SHoward Hinnantusing ::strtok;
89e0cf3b9aSEd Schouten#endif
903e519524SHoward Hinnantusing ::memset;
913e519524SHoward Hinnantusing ::strerror;
923e519524SHoward Hinnantusing ::strlen;
933e519524SHoward Hinnant
943e519524SHoward Hinnant_LIBCPP_END_NAMESPACE_STD
953e519524SHoward Hinnant
963e519524SHoward Hinnant#endif  // _LIBCPP_CSTRING
97