13e519524SHoward Hinnant// -*- C++ -*-
2eb8650a7SLouis Dionne//===----------------------------------------------------------------------===//
33e519524SHoward Hinnant//
42946cd70SChandler Carruth// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
52946cd70SChandler Carruth// See https://llvm.org/LICENSE.txt for license information.
62946cd70SChandler 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
59*385cc25aSLouis Dionne#include <__assert> // all public C++ headers provide the assertion handler
603e519524SHoward Hinnant#include <__config>
613e519524SHoward Hinnant#include <string.h>
623e519524SHoward Hinnant
63073458b1SHoward Hinnant#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
643e519524SHoward Hinnant#  pragma GCC system_header
65073458b1SHoward Hinnant#endif
663e519524SHoward Hinnant
673e519524SHoward Hinnant_LIBCPP_BEGIN_NAMESPACE_STD
683e519524SHoward Hinnant
69a9c9183cSLouis Dionneusing ::size_t _LIBCPP_USING_IF_EXISTS;
70a9c9183cSLouis Dionneusing ::memcpy _LIBCPP_USING_IF_EXISTS;
71a9c9183cSLouis Dionneusing ::memmove _LIBCPP_USING_IF_EXISTS;
72a9c9183cSLouis Dionneusing ::strcpy _LIBCPP_USING_IF_EXISTS;
73a9c9183cSLouis Dionneusing ::strncpy _LIBCPP_USING_IF_EXISTS;
74a9c9183cSLouis Dionneusing ::strcat _LIBCPP_USING_IF_EXISTS;
75a9c9183cSLouis Dionneusing ::strncat _LIBCPP_USING_IF_EXISTS;
76a9c9183cSLouis Dionneusing ::memcmp _LIBCPP_USING_IF_EXISTS;
77a9c9183cSLouis Dionneusing ::strcmp _LIBCPP_USING_IF_EXISTS;
78a9c9183cSLouis Dionneusing ::strncmp _LIBCPP_USING_IF_EXISTS;
79a9c9183cSLouis Dionneusing ::strcoll _LIBCPP_USING_IF_EXISTS;
80a9c9183cSLouis Dionneusing ::strxfrm _LIBCPP_USING_IF_EXISTS;
81a9c9183cSLouis Dionneusing ::memchr _LIBCPP_USING_IF_EXISTS;
82a9c9183cSLouis Dionneusing ::strchr _LIBCPP_USING_IF_EXISTS;
83a9c9183cSLouis Dionneusing ::strcspn _LIBCPP_USING_IF_EXISTS;
84a9c9183cSLouis Dionneusing ::strpbrk _LIBCPP_USING_IF_EXISTS;
85a9c9183cSLouis Dionneusing ::strrchr _LIBCPP_USING_IF_EXISTS;
86a9c9183cSLouis Dionneusing ::strspn _LIBCPP_USING_IF_EXISTS;
87a9c9183cSLouis Dionneusing ::strstr _LIBCPP_USING_IF_EXISTS;
88a9c9183cSLouis Dionneusing ::strtok _LIBCPP_USING_IF_EXISTS;
89a9c9183cSLouis Dionneusing ::memset _LIBCPP_USING_IF_EXISTS;
90a9c9183cSLouis Dionneusing ::strerror _LIBCPP_USING_IF_EXISTS;
91a9c9183cSLouis Dionneusing ::strlen _LIBCPP_USING_IF_EXISTS;
923e519524SHoward Hinnant
933e519524SHoward Hinnant_LIBCPP_END_NAMESPACE_STD
943e519524SHoward Hinnant
953e519524SHoward Hinnant#endif // _LIBCPP_CSTRING
96