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