xref: /netbsd-src/usr.bin/xlint/llib/llib-lstdc (revision d6c493f3fb397ee7513d2b9bdf7a18f3bf21f66d)
1*d6c493f3Scgd/*	$NetBSD: llib-lstdc,v 1.3 1995/07/03 21:39:28 cgd Exp $	*/
2c61d16ddScgd
3b14be51dScgd/*
4b14be51dScgd * Copyright (c) 1994, 1995 Jochen Pohl
5b14be51dScgd * All Rights Reserved.
6b14be51dScgd *
7b14be51dScgd * Redistribution and use in source and binary forms, with or without
8b14be51dScgd * modification, are permitted provided that the following conditions
9b14be51dScgd * are met:
10b14be51dScgd * 1. Redistributions of source code must retain the above copyright
11b14be51dScgd *    notice, this list of conditions and the following disclaimer.
12b14be51dScgd * 2. Redistributions in binary form must reproduce the above copyright
13b14be51dScgd *    notice, this list of conditions and the following disclaimer in the
14b14be51dScgd *    documentation and/or other materials provided with the distribution.
15b14be51dScgd * 3. All advertising materials mentioning features or use of this software
16b14be51dScgd *    must display the following acknowledgement:
17b14be51dScgd *      This product includes software developed by Jochen Pohl for
18b14be51dScgd *	The NetBSD Project.
19b14be51dScgd * 4. The name of the author may not be used to endorse or promote products
20b14be51dScgd *    derived from this software without specific prior written permission.
21b14be51dScgd *
22b14be51dScgd * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
23b14be51dScgd * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
24b14be51dScgd * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
25b14be51dScgd * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
26b14be51dScgd * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
27b14be51dScgd * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28b14be51dScgd * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29b14be51dScgd * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30b14be51dScgd * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
31b14be51dScgd * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32b14be51dScgd */
33b14be51dScgd
34b14be51dScgd/* LINTLIBRARY */
35b14be51dScgd
36b14be51dScgd#define _ANSI_SOURCE
37b14be51dScgd
38b14be51dScgd#include <assert.h>
39b14be51dScgd#include <ctype.h>
40b14be51dScgd#include <errno.h>
41b14be51dScgd#include <locale.h>
42b14be51dScgd#include <math.h>
43b14be51dScgd#include <setjmp.h>
44b14be51dScgd#include <signal.h>
45b14be51dScgd#include <stdarg.h>
46b14be51dScgd#include <stddef.h>
47b14be51dScgd#include <stdio.h>
48b14be51dScgd#include <stdlib.h>
49b14be51dScgd#include <string.h>
50b14be51dScgd#include <time.h>
51b14be51dScgd
52b14be51dScgd/* PROTOLIB1 */
53b14be51dScgd
54b14be51dScgd/*
55b14be51dScgd * assert.h
56b14be51dScgd */
57b14be51dScgd#ifdef __NetBSD__
58b14be51dScgdvoid	(__assert)(const char *expression, int line, const char *file);
59b14be51dScgd#else
60b14be51dScgdvoid	(assert)(int expression);
61b14be51dScgd#endif
62b14be51dScgd
63b14be51dScgd/*
64b14be51dScgd * ctype.h
65b14be51dScgd */
66b14be51dScgdint	(isalnum)(int c);
67b14be51dScgdint	(isalpha)(int c);
68b14be51dScgdint	(iscntrl)(int c);
69b14be51dScgdint	(isdigit)(int c);
70b14be51dScgdint	(isgraph)(int c);
71b14be51dScgdint	(islower)(int c);
72b14be51dScgdint	(isprint)(int c);
73b14be51dScgdint	(ispunct)(int c);
74b14be51dScgdint	(isspace)(int c);
75b14be51dScgdint	(isupper)(int c);
76b14be51dScgdint	(isxdigit)(int c);
77b14be51dScgdint	(tolower)(int c);
78b14be51dScgdint	(toupper)(int c);
79b14be51dScgd
80b14be51dScgd/*
81b14be51dScgd * errno.h
82b14be51dScgd */
83b14be51dScgdint	(errno);
84b14be51dScgd
85b14be51dScgd/*
86b14be51dScgd * locale.h
87b14be51dScgd */
88b14be51dScgdchar *(setlocale)(int category, const char *locale);
89b14be51dScgdstruct lconv *(localeconv)(void);
90b14be51dScgd
91b14be51dScgd/*
92b14be51dScgd * math.h
93b14be51dScgd */
94b14be51dScgddouble	(acos)(double x);
95b14be51dScgddouble	(asin)(double x);
96b14be51dScgddouble	(atan)(double x);
97b14be51dScgddouble	(atan2)(double y, double x);
98b14be51dScgddouble	(cos)(double x);
99b14be51dScgddouble	(sin)(double x);
100b14be51dScgddouble	(tan)(double x);
101b14be51dScgddouble	(cosh)(double x);
102b14be51dScgddouble	(sinh)(double x);
103b14be51dScgddouble	(tanh)(double x);
104b14be51dScgddouble	(exp)(double x);
105b14be51dScgddouble	(frexp)(double value, int *exp);
106b14be51dScgddouble	(ldexp)(double x, int exp);
107b14be51dScgddouble	(log)(double x);
108b14be51dScgddouble	(log10)(double x);
109b14be51dScgddouble	(modf)(double value, double *iptr);
110b14be51dScgddouble	(pow)(double x, double y);
111b14be51dScgddouble	(sqrt)(double x);
112b14be51dScgddouble	(ceil)(double x);
113b14be51dScgddouble	(fabs)(double x);
114b14be51dScgddouble	(floor)(double x);
115b14be51dScgddouble	(fmod)(double x, double y);
116b14be51dScgd
117b14be51dScgd/*
118b14be51dScgd * setjmp.h
119b14be51dScgd */
120b14be51dScgdint	(setjmp)(jmp_buf env);
121b14be51dScgdvoid	(longjmp)(jmp_buf env, int val);
122b14be51dScgd
123b14be51dScgd/*
124b14be51dScgd * signal.h
125b14be51dScgd */
126b14be51dScgdvoid	(*(signal)(int sig, void (*func)(int)))(int);
127b14be51dScgdint	(raise)(int sig);
128b14be51dScgd
129b14be51dScgd/*
130b14be51dScgd * stdio.h
131b14be51dScgd */
132b14be51dScgdint	(remove)(const char *filename);
133b14be51dScgdint	(rename)(const char *old, const char *new);
134b14be51dScgdFILE	*(tmpfile)(void);
135b14be51dScgdchar	*(tmpnam)(char *s);
136b14be51dScgdint	(fclose)(FILE *stream);
137b14be51dScgdint	(fflush)(FILE *stream);
138b14be51dScgdFILE	*(fopen)(const char *filename, const char *mode);
139b14be51dScgdFILE	*(freopen)(const char *filename, const char *mode, FILE *stream);
140b14be51dScgdvoid	(setbuf)(FILE *stream, char *buf);
141b14be51dScgdint	(setvbuf)(FILE *stream, char *buf, int mode, size_t size);
142b14be51dScgd/* PRINTFLIKE2 */
143b14be51dScgdint	(fprintf)(FILE *stream, const char *format, ...);
144b14be51dScgd/* SCANFLIKE2 */
145b14be51dScgdint	(fscanf)(FILE *stream, const char *format, ...);
146b14be51dScgd/* PRINTFLIKE1 */
147b14be51dScgdint	(printf)(const char *format, ...);
148b14be51dScgd/* SCANFLIKE1 */
149b14be51dScgdint	(scanf)(const char *format, ...);
150b14be51dScgd/* PRINTFLIKE2 */
151b14be51dScgdint	(sprintf)(char *s, const char *format, ...);
152b14be51dScgd/* SCANFLIKE2 */
153b14be51dScgdint	(sscanf)(const char *s, const char *format, ...);
154b14be51dScgdint	(vfprintf)(FILE *stream, const char *format, va_list arg);
155b14be51dScgdint	(vprintf)(const char *format, va_list arg);
156b14be51dScgdint	(vsprintf)(char *s, const char *format, va_list arg);
157b14be51dScgdint	(fgetc)(FILE *stream);
158b14be51dScgdchar	*(fgets)(char *s, int n, FILE *stream);
159b14be51dScgdint	(fputc)(int c, FILE *stream);
160b14be51dScgdint	(fputs)(const char *s, FILE *stream);
161b14be51dScgdint	(getc)(FILE *stream);
162b14be51dScgdint	(getchar)(void);
163b14be51dScgdchar	*(gets)(char *s);
164b14be51dScgdint	(putc)(int c, FILE *stream);
165b14be51dScgdint	(putchar)(int c);
166b14be51dScgdint	(puts)(const char *s);
167b14be51dScgdint	(ungetc)(int c, FILE *stream);
168b14be51dScgdsize_t	(fread)(void *ptr, size_t size, size_t nmemb, FILE *stream);
169b14be51dScgdsize_t	(fwrite)(const void *ptr, size_t size, size_t nmemb, FILE *stream);
170b14be51dScgdint	(fgetpos)(FILE *stream, fpos_t *pos);
171b14be51dScgdint	(fseek)(FILE *stream, long offset, int whence);
172b14be51dScgdint	(fsetpos)(FILE *stream, const fpos_t *pos);
173b14be51dScgdlong	(ftell)(FILE *stream);
174b14be51dScgdvoid	(rewind)(FILE *stream);
175b14be51dScgdvoid	(clearerr)(FILE *stream);
176b14be51dScgdint	(feof)(FILE *stream);
177b14be51dScgdint	(ferror)(FILE *stream);
178b14be51dScgdvoid	(perror)(const char *s);
179b14be51dScgd
180b14be51dScgd/*
181b14be51dScgd * stdlib.h
182b14be51dScgd */
183b14be51dScgddouble	(atof)(const char *nptr);
184b14be51dScgdint	(atoi)(const char *nptr);
185b14be51dScgdlong	(atol)(const char *nptr);
186b14be51dScgddouble	(strtod)(const char *nptr, char **endptr);
187b14be51dScgdlong	(strtol)(const char *nptr, char **endptr, int base);
188b14be51dScgdunsigned long (strtoul)(const char *nptr, char **endptr, int base);
189b14be51dScgdint	(rand)(void);
190b14be51dScgdvoid	(srand)(unsigned seed);
191b14be51dScgdvoid	*(calloc)(size_t nmemb, size_t size);
192b14be51dScgdvoid	(free)(void *ptr);
193b14be51dScgdvoid	*(malloc)(size_t size);
194b14be51dScgdvoid	*(realloc)(void *ptr, size_t size);
195b14be51dScgdvoid	(abort)(void);
196b14be51dScgdint	(atexit)(void (*func)(void));
197b14be51dScgdvoid	(exit)(int status);
198b14be51dScgdchar	*(getenv)(const char *name);
199b14be51dScgdint	(system)(const char *string);
200b14be51dScgdvoid	*(bsearch)(const void *key, const void *base, size_t nmemb,
201b14be51dScgd		   size_t size, int (*compar)(const void *, const void *));
202b14be51dScgdvoid	(qsort)(void *base, size_t nmemb, size_t size,
203b14be51dScgd		int (*compar)(const void *, const void *));
204b14be51dScgdint	(abs)(int j);
205b14be51dScgddiv_t	(div)(int numer, int denom);
206b14be51dScgdlong	(labs)(long j);
207b14be51dScgdldiv_t	(ldiv)(long numer, long denom);
208b14be51dScgdint	(mblen)(const char *s, size_t n);
209b14be51dScgdint	(mbtowc)(wchar_t *PWC, const char *s, size_t n);
210b14be51dScgdint	(wctomb)(char *s, wchar_t wchar);
211b14be51dScgdsize_t	(mbstowcs)(wchar_t *pwcs, const char *s, size_t n);
212b14be51dScgdsize_t	(wcstombs)(char *s, const wchar_t *pwcs, size_t n);
213b14be51dScgd
214b14be51dScgd/*
215b14be51dScgd * string.h
216b14be51dScgd */
217b14be51dScgdvoid	*(memcpy)(void *s1, const void *s2, size_t n);
218b14be51dScgdvoid	*(memmove)(void *s1, const void *s2, size_t n);
219b14be51dScgdchar	*(strcpy)(char *s1, const char *s2);
220b14be51dScgdchar	*(strncpy)(char *s1, const char *s2, size_t n);
221b14be51dScgdchar	*(strcat)(char *s1, const char *s2);
222b14be51dScgdchar	*(strncat)(char *s1, const char *s2, size_t n);
223b14be51dScgdint	(memcmp)(const void *s1, const void *s2, size_t n);
224b14be51dScgdint	(strcmp)(const char *s1, const char *s2);
225b14be51dScgdint	(strcoll)(const char *s1, const char *s2);
226b14be51dScgdint	(strncmp)(const char *s1, const char *s2, size_t n);
227b14be51dScgdsize_t	(strxfrm)(char *s1, const char *s2, size_t n);
228b14be51dScgdvoid	*(memchr)(const void *s, int c, size_t n);
229b14be51dScgdchar	*(strchr)(const char *s, int c);
230b14be51dScgdsize_t	(strcspn)(const char *s1, const char *s2);
231b14be51dScgdchar	*(strpbrk)(const char *s1, const char *s2);
232b14be51dScgdchar	*(strrchr)(const char *s1, int c);
233b14be51dScgdsize_t	(strspn)(const char *s1, const char *s2);
234b14be51dScgdchar	*(strstr)(const char *s1, const char *s2);
235b14be51dScgdchar	*(strtok)(char *s1, const char *s2);
236b14be51dScgdvoid	*(memset)(void *s, int c, size_t n);
237b14be51dScgdchar	*(strerror)(int errnom);
238b14be51dScgdsize_t	(strlen)(const char *s);
239b14be51dScgd
240b14be51dScgd/*
241b14be51dScgd * time.h
242b14be51dScgd */
243b14be51dScgdclock_t (clock)(void);
244b14be51dScgddouble	(difftime)(time_t time1, time_t time2);
245b14be51dScgdtime_t	(mktime)(struct tm *timeptr);
246b14be51dScgdtime_t	(time)(time_t *timer);
247b14be51dScgdchar	*(asctime)(const struct tm *timeptr);
248b14be51dScgdchar	*(ctime)(const time_t *timer);
249b14be51dScgdstruct tm *(gmtime)(const time_t *timer);
250b14be51dScgdstruct tm *(localtime)(const time_t *timer);
251b14be51dScgdsize_t	(strftime)(char *s, size_t maxsize, const char *format,
252b14be51dScgd		   const struct tm *timeptr);
253