66 lines · c
1//===- not-null-terminated-result-cxx.h - Helper header ---------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9// This header helps to maintain every function call checked by the10// NotNullTerminatedResult checker.11//12//===----------------------------------------------------------------------===//13 14#pragma clang system_header15 16#include "not-null-terminated-result-c.h"17 18namespace std {19template <typename T>20struct basic_string {21 basic_string();22 const T *data() const;23 unsigned long size() const;24 unsigned long length() const;25};26typedef basic_string<char> string;27} // namespace std28 29size_t wcslen(const wchar_t *str);30 31template <size_t size>32char *strcpy(char (&dest)[size], const char *src);33template <size_t size>34wchar_t *wcscpy(wchar_t (&dest)[size], const wchar_t *src);35wchar_t *wcscpy(wchar_t *dest, const wchar_t *src);36 37template <size_t size>38errno_t strcpy_s(char (&dest)[size], const char *src);39template <size_t size>40errno_t wcscpy_s(wchar_t (&dest)[size], const wchar_t *src);41errno_t wcscpy_s(wchar_t *dest, size_t destSize, const wchar_t *src);42 43template <size_t size>44char *strncpy(char (&dest)[size], const char *src, size_t count);45template <size_t size>46wchar_t *wcsncpy(wchar_t (&dest)[size], const wchar_t *src, size_t count);47wchar_t *wcsncpy(wchar_t *dest, const wchar_t *src, size_t count);48 49template <size_t size>50errno_t strncpy_s(char (&dest)[size], const char *src, size_t count);51template <size_t size>52errno_t wcsncpy_s(wchar_t (&dest)[size], const wchar_t *src, size_t length);53errno_t wcsncpy_s(wchar_t *dest, size_t destSize, const wchar_t *src, size_t c);54 55wchar_t *wmemcpy(wchar_t *dest, const wchar_t *src, size_t count);56errno_t wmemcpy_s(wchar_t *dest, size_t destSize, const wchar_t *src, size_t c);57 58wchar_t *wcschr(const wchar_t *str, int c);59int wcsncmp(const wchar_t *str1, const wchar_t *str2, size_t count);60size_t wcsxfrm(wchar_t *dest, const wchar_t *src, size_t count);61 62void *wmemchr(const void *buffer, int c, size_t count);63void *wmemmove(void *dest, const void *src, size_t count);64errno_t wmemmove_s(void *dest, size_t destSize, const void *src, size_t count);65void *wmemset(void *dest, int c, size_t count);66