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