xref: /illumos-gate/usr/src/test/header-tests/cfg/cxx-symbols/cstring_h.cfg (revision 1072464281f5b1736a36f54036d362c13ca7a4e0)
1#
2# This file and its contents are supplied under the terms of the
3# Common Development and Distribution License ("CDDL"), version 1.0.
4# You may only use this file in accordance with the terms of version
5# 1.0 of the CDDL.
6#
7# A full copy of the text of the CDDL should have accompanied this
8# source.  A copy of the CDDL is also available via the Internet at
9# http://www.illumos.org/license/CDDL.
10#
11
12#
13# Copyright 2026 Gordon W. Ross
14#
15
16#
17# Design notes for <cstring> test cases
18#
19# <cstring>  must provide all C90 string functions in namespace std::.
20# string_iso.h declares all functions in namespace std:: and <cstring>
21# exposes them.
22#
23# The C++ standard (ISO/IEC 14882) requires that memchr, strchr, strpbrk,
24# strrchr, and strstr each have two overloads: one returning const pointer
25# (when given const input) and one returning non-const pointer.  These are
26# handled by inline C++ wrappers in string_iso.h.
27#
28
29#
30# Types - must be in std::
31#
32type | std::size_t	| cstring | CXX98+
33
34#
35# Memory functions - must be in std::
36#
37func | std::memcmp				|\
38	int					|\
39	const void *; const void *; size_t	|\
40	cstring | CXX98+
41func | std::memcpy				|\
42	void *					|\
43	void *; const void *; size_t		|\
44	cstring | CXX98+
45func | std::memmove				|\
46	void *					|\
47	void *; const void *; size_t		|\
48	cstring | CXX98+
49func | std::memset				|\
50	void *					|\
51	void *; int; size_t			|\
52	cstring | CXX98+
53func | std::memchr				|\
54	const void *				|\
55	const void *; int; size_t		|\
56	cstring | CXX98+
57
58#
59# String functions - must be in std::
60#
61func | std::strcat				|\
62	char *					|\
63	char *; const char *			|\
64	cstring | CXX98+
65func | std::strchr				|\
66	const char *				|\
67	const char *; int			|\
68	cstring | CXX98+
69func | std::strcmp				|\
70	int					|\
71	const char *; const char *		|\
72	cstring | CXX98+
73func | std::strcoll				|\
74	int					|\
75	const char *; const char *		|\
76	cstring | CXX98+
77func | std::strcpy				|\
78	char *					|\
79	char *; const char *			|\
80	cstring | CXX98+
81func | std::strcspn				|\
82	size_t					|\
83	const char *; const char *		|\
84	cstring | CXX98+
85func | std::strerror				|\
86	char *					|\
87	int					|\
88	cstring | CXX98+
89func | std::strlen				|\
90	size_t					|\
91	const char *				|\
92	cstring | CXX98+
93func | std::strncat				|\
94	char *					|\
95	char *; const char *; size_t		|\
96	cstring | CXX98+
97func | std::strncmp				|\
98	int					|\
99	const char *; const char *; size_t	|\
100	cstring | CXX98+
101func | std::strncpy				|\
102	char *					|\
103	char *; const char *; size_t		|\
104	cstring | CXX98+
105func | std::strpbrk				|\
106	const char *				|\
107	const char *; const char *		|\
108	cstring | CXX98+
109func | std::strrchr				|\
110	const char *				|\
111	const char *; int			|\
112	cstring | CXX98+
113func | std::strspn				|\
114	size_t					|\
115	const char *; const char *		|\
116	cstring | CXX98+
117func | std::strstr				|\
118	const char *				|\
119	const char *; const char *		|\
120	cstring | CXX98+
121func | std::strtok				|\
122	char *					|\
123	char *; const char *			|\
124	cstring | CXX98+
125func | std::strxfrm				|\
126	size_t					|\
127	char *; const char *; size_t		|\
128	cstring | CXX98+
129