Mercurial > hg > CbC > CbC_gcc
annotate gcc/system.h @ 136:4627f235cf2a
fix c-next example
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 08 Nov 2018 14:11:56 +0900 |
parents | 84e7813d76e9 |
children | 1830386684a0 |
rev | line source |
---|---|
0 | 1 /* Get common system includes and various definitions and declarations based |
2 on autoconf macros. | |
131 | 3 Copyright (C) 1998-2018 Free Software Foundation, Inc. |
0 | 4 |
5 This file is part of GCC. | |
6 | |
7 GCC is free software; you can redistribute it and/or modify it under | |
8 the terms of the GNU General Public License as published by the Free | |
9 Software Foundation; either version 3, or (at your option) any later | |
10 version. | |
11 | |
12 GCC is distributed in the hope that it will be useful, but WITHOUT ANY | |
13 WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
18 along with GCC; see the file COPYING3. If not see | |
19 <http://www.gnu.org/licenses/>. */ | |
20 | |
21 | |
22 #ifndef GCC_SYSTEM_H | |
23 #define GCC_SYSTEM_H | |
24 | |
111 | 25 /* Define this so that inttypes.h defines the PRI?64 macros even |
26 when compiling with a C++ compiler. Define it here so in the | |
27 event inttypes.h gets pulled in by another header it is already | |
28 defined. */ | |
29 #define __STDC_FORMAT_MACROS | |
30 | |
0 | 31 /* We must include stdarg.h before stdio.h. */ |
32 #include <stdarg.h> | |
33 | |
34 #ifndef va_copy | |
35 # ifdef __va_copy | |
111 | 36 # define va_copy(d,s) __va_copy (d, s) |
0 | 37 # else |
38 # define va_copy(d,s) ((d) = (s)) | |
39 # endif | |
40 #endif | |
41 | |
42 #ifdef HAVE_STDDEF_H | |
43 # include <stddef.h> | |
44 #endif | |
45 | |
46 #include <stdio.h> | |
47 | |
48 /* Define a generic NULL if one hasn't already been defined. */ | |
49 #ifndef NULL | |
50 #define NULL 0 | |
51 #endif | |
52 | |
53 /* Use the unlocked open routines from libiberty. */ | |
111 | 54 |
55 /* Some of these are #define on some systems, e.g. on AIX to redirect | |
56 the names to 64bit capable functions for LARGE_FILES support. These | |
57 redefs are pointless here so we can override them. */ | |
58 | |
59 #undef fopen | |
60 #undef freopen | |
61 | |
62 #define fopen(PATH, MODE) fopen_unlocked (PATH, MODE) | |
63 #define fdopen(FILDES, MODE) fdopen_unlocked (FILDES, MODE) | |
64 #define freopen(PATH, MODE, STREAM) freopen_unlocked (PATH, MODE, STREAM) | |
0 | 65 |
66 /* The compiler is not a multi-threaded application and therefore we | |
67 do not have to use the locking functions. In fact, using the locking | |
68 functions can cause the compiler to be significantly slower under | |
69 I/O bound conditions (such as -g -O0 on very large source files). | |
70 | |
71 HAVE_DECL_PUTC_UNLOCKED actually indicates whether or not the stdio | |
72 code is multi-thread safe by default. If it is set to 0, then do | |
73 not worry about using the _unlocked functions. | |
74 | |
75 fputs_unlocked, fwrite_unlocked, and fprintf_unlocked are | |
76 extensions and need to be prototyped by hand (since we do not | |
77 define _GNU_SOURCE). */ | |
78 | |
79 #if defined HAVE_DECL_PUTC_UNLOCKED && HAVE_DECL_PUTC_UNLOCKED | |
80 | |
81 # ifdef HAVE_PUTC_UNLOCKED | |
82 # undef putc | |
83 # define putc(C, Stream) putc_unlocked (C, Stream) | |
84 # endif | |
85 # ifdef HAVE_PUTCHAR_UNLOCKED | |
86 # undef putchar | |
87 # define putchar(C) putchar_unlocked (C) | |
88 # endif | |
89 # ifdef HAVE_GETC_UNLOCKED | |
90 # undef getc | |
91 # define getc(Stream) getc_unlocked (Stream) | |
92 # endif | |
93 # ifdef HAVE_GETCHAR_UNLOCKED | |
94 # undef getchar | |
95 # define getchar() getchar_unlocked () | |
96 # endif | |
97 # ifdef HAVE_FPUTC_UNLOCKED | |
98 # undef fputc | |
99 # define fputc(C, Stream) fputc_unlocked (C, Stream) | |
100 # endif | |
101 | |
111 | 102 #ifdef __cplusplus |
103 extern "C" { | |
104 #endif | |
105 | |
0 | 106 # ifdef HAVE_CLEARERR_UNLOCKED |
107 # undef clearerr | |
108 # define clearerr(Stream) clearerr_unlocked (Stream) | |
109 # if defined (HAVE_DECL_CLEARERR_UNLOCKED) && !HAVE_DECL_CLEARERR_UNLOCKED | |
110 extern void clearerr_unlocked (FILE *); | |
111 # endif | |
112 # endif | |
113 # ifdef HAVE_FEOF_UNLOCKED | |
114 # undef feof | |
115 # define feof(Stream) feof_unlocked (Stream) | |
116 # if defined (HAVE_DECL_FEOF_UNLOCKED) && !HAVE_DECL_FEOF_UNLOCKED | |
117 extern int feof_unlocked (FILE *); | |
118 # endif | |
119 # endif | |
120 # ifdef HAVE_FILENO_UNLOCKED | |
121 # undef fileno | |
122 # define fileno(Stream) fileno_unlocked (Stream) | |
123 # if defined (HAVE_DECL_FILENO_UNLOCKED) && !HAVE_DECL_FILENO_UNLOCKED | |
124 extern int fileno_unlocked (FILE *); | |
125 # endif | |
126 # endif | |
127 # ifdef HAVE_FFLUSH_UNLOCKED | |
128 # undef fflush | |
129 # define fflush(Stream) fflush_unlocked (Stream) | |
130 # if defined (HAVE_DECL_FFLUSH_UNLOCKED) && !HAVE_DECL_FFLUSH_UNLOCKED | |
131 extern int fflush_unlocked (FILE *); | |
132 # endif | |
133 # endif | |
134 # ifdef HAVE_FGETC_UNLOCKED | |
135 # undef fgetc | |
136 # define fgetc(Stream) fgetc_unlocked (Stream) | |
137 # if defined (HAVE_DECL_FGETC_UNLOCKED) && !HAVE_DECL_FGETC_UNLOCKED | |
138 extern int fgetc_unlocked (FILE *); | |
139 # endif | |
140 # endif | |
141 # ifdef HAVE_FGETS_UNLOCKED | |
142 # undef fgets | |
143 # define fgets(S, n, Stream) fgets_unlocked (S, n, Stream) | |
144 # if defined (HAVE_DECL_FGETS_UNLOCKED) && !HAVE_DECL_FGETS_UNLOCKED | |
145 extern char *fgets_unlocked (char *, int, FILE *); | |
146 # endif | |
147 # endif | |
148 # ifdef HAVE_FPUTS_UNLOCKED | |
149 # undef fputs | |
150 # define fputs(String, Stream) fputs_unlocked (String, Stream) | |
151 # if defined (HAVE_DECL_FPUTS_UNLOCKED) && !HAVE_DECL_FPUTS_UNLOCKED | |
152 extern int fputs_unlocked (const char *, FILE *); | |
153 # endif | |
154 # endif | |
155 # ifdef HAVE_FERROR_UNLOCKED | |
156 # undef ferror | |
157 # define ferror(Stream) ferror_unlocked (Stream) | |
158 # if defined (HAVE_DECL_FERROR_UNLOCKED) && !HAVE_DECL_FERROR_UNLOCKED | |
159 extern int ferror_unlocked (FILE *); | |
160 # endif | |
161 # endif | |
162 # ifdef HAVE_FREAD_UNLOCKED | |
163 # undef fread | |
164 # define fread(Ptr, Size, N, Stream) fread_unlocked (Ptr, Size, N, Stream) | |
165 # if defined (HAVE_DECL_FREAD_UNLOCKED) && !HAVE_DECL_FREAD_UNLOCKED | |
166 extern size_t fread_unlocked (void *, size_t, size_t, FILE *); | |
167 # endif | |
168 # endif | |
169 # ifdef HAVE_FWRITE_UNLOCKED | |
170 # undef fwrite | |
171 # define fwrite(Ptr, Size, N, Stream) fwrite_unlocked (Ptr, Size, N, Stream) | |
172 # if defined (HAVE_DECL_FWRITE_UNLOCKED) && !HAVE_DECL_FWRITE_UNLOCKED | |
173 extern size_t fwrite_unlocked (const void *, size_t, size_t, FILE *); | |
174 # endif | |
175 # endif | |
176 # ifdef HAVE_FPRINTF_UNLOCKED | |
177 # undef fprintf | |
178 /* We can't use a function-like macro here because we don't know if | |
179 we have varargs macros. */ | |
180 # define fprintf fprintf_unlocked | |
181 # if defined (HAVE_DECL_FPRINTF_UNLOCKED) && !HAVE_DECL_FPRINTF_UNLOCKED | |
182 extern int fprintf_unlocked (FILE *, const char *, ...); | |
183 # endif | |
184 # endif | |
185 | |
111 | 186 #ifdef __cplusplus |
187 } | |
188 #endif | |
189 | |
0 | 190 #endif |
191 | |
192 /* ??? Glibc's fwrite/fread_unlocked macros cause | |
193 "warning: signed and unsigned type in conditional expression". */ | |
194 #undef fread_unlocked | |
195 #undef fwrite_unlocked | |
196 | |
111 | 197 /* Include <string> before "safe-ctype.h" to avoid GCC poisoning |
198 the ctype macros through safe-ctype.h */ | |
199 | |
200 #ifdef __cplusplus | |
201 #ifdef INCLUDE_STRING | |
202 # include <string> | |
203 #endif | |
204 #endif | |
205 | |
0 | 206 /* There are an extraordinary number of issues with <ctype.h>. |
207 The last straw is that it varies with the locale. Use libiberty's | |
208 replacement instead. */ | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
209 #include "safe-ctype.h" |
0 | 210 |
211 #include <sys/types.h> | |
212 | |
213 #include <errno.h> | |
214 | |
215 #if !defined (errno) && defined (HAVE_DECL_ERRNO) && !HAVE_DECL_ERRNO | |
216 extern int errno; | |
217 #endif | |
218 | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
219 #ifdef __cplusplus |
111 | 220 #if defined (INCLUDE_ALGORITHM) || !defined (HAVE_SWAP_IN_UTILITY) |
221 # include <algorithm> | |
222 #endif | |
223 #ifdef INCLUDE_LIST | |
224 # include <list> | |
225 #endif | |
226 #ifdef INCLUDE_MAP | |
227 # include <map> | |
228 #endif | |
229 #ifdef INCLUDE_SET | |
230 # include <set> | |
231 #endif | |
232 #ifdef INCLUDE_VECTOR | |
233 # include <vector> | |
234 #endif | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
235 # include <cstring> |
111 | 236 # include <new> |
237 # include <utility> | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
238 #endif |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
239 |
0 | 240 /* Some of glibc's string inlines cause warnings. Plus we'd rather |
241 rely on (and therefore test) GCC's string builtins. */ | |
242 #define __NO_STRING_INLINES | |
243 | |
244 #ifdef STRING_WITH_STRINGS | |
245 # include <string.h> | |
246 # include <strings.h> | |
247 #else | |
248 # ifdef HAVE_STRING_H | |
249 # include <string.h> | |
250 # else | |
251 # ifdef HAVE_STRINGS_H | |
252 # include <strings.h> | |
253 # endif | |
254 # endif | |
255 #endif | |
256 | |
257 #ifdef HAVE_STDLIB_H | |
258 # include <stdlib.h> | |
259 #endif | |
260 | |
111 | 261 /* When compiling C++ we need to include <cstdlib> as well as <stdlib.h> so |
262 that it is processed before we poison "malloc"; otherwise, if a source | |
263 file uses a standard library header that includes <cstdlib>, we will get | |
264 an error about 'using std::malloc'. */ | |
265 #ifdef __cplusplus | |
266 #include <cstdlib> | |
267 #endif | |
268 | |
269 /* Undef vec_free from AIX stdlib.h header which conflicts with vec.h. */ | |
270 #undef vec_free | |
271 | |
0 | 272 /* If we don't have an overriding definition, set SUCCESS_EXIT_CODE and |
273 FATAL_EXIT_CODE to EXIT_SUCCESS and EXIT_FAILURE respectively, | |
274 or 0 and 1 if those macros are not defined. */ | |
275 #ifndef SUCCESS_EXIT_CODE | |
276 # ifdef EXIT_SUCCESS | |
277 # define SUCCESS_EXIT_CODE EXIT_SUCCESS | |
278 # else | |
279 # define SUCCESS_EXIT_CODE 0 | |
280 # endif | |
281 #endif | |
282 | |
283 #ifndef FATAL_EXIT_CODE | |
284 # ifdef EXIT_FAILURE | |
285 # define FATAL_EXIT_CODE EXIT_FAILURE | |
286 # else | |
287 # define FATAL_EXIT_CODE 1 | |
288 # endif | |
289 #endif | |
290 | |
291 #define ICE_EXIT_CODE 4 | |
292 | |
293 #ifdef HAVE_UNISTD_H | |
294 # include <unistd.h> | |
295 #endif | |
296 | |
297 #ifdef HAVE_SYS_PARAM_H | |
298 # include <sys/param.h> | |
111 | 299 /* We use these identifiers later and they appear in some vendor param.h's. */ |
0 | 300 # undef PREFETCH |
111 | 301 # undef m_slot |
0 | 302 #endif |
303 | |
304 #if HAVE_LIMITS_H | |
305 # include <limits.h> | |
306 #endif | |
307 | |
308 /* A macro to determine whether a VALUE lies inclusively within a | |
309 certain range without evaluating the VALUE more than once. This | |
310 macro won't warn if the VALUE is unsigned and the LOWER bound is | |
311 zero, as it would e.g. with "VALUE >= 0 && ...". Note the LOWER | |
312 bound *is* evaluated twice, and LOWER must not be greater than | |
313 UPPER. However the bounds themselves can be either positive or | |
314 negative. */ | |
315 #define IN_RANGE(VALUE, LOWER, UPPER) \ | |
316 ((unsigned HOST_WIDE_INT) (VALUE) - (unsigned HOST_WIDE_INT) (LOWER) \ | |
317 <= (unsigned HOST_WIDE_INT) (UPPER) - (unsigned HOST_WIDE_INT) (LOWER)) | |
318 | |
319 /* Infrastructure for defining missing _MAX and _MIN macros. Note that | |
320 macros defined with these cannot be used in #if. */ | |
321 | |
322 /* The extra casts work around common compiler bugs. */ | |
323 #define INTTYPE_SIGNED(t) (! ((t) 0 < (t) -1)) | |
324 /* The outer cast is needed to work around a bug in Cray C 5.0.3.0. | |
325 It is necessary at least when t == time_t. */ | |
326 #define INTTYPE_MINIMUM(t) ((t) (INTTYPE_SIGNED (t) \ | |
111 | 327 ? (t) 1 << (sizeof (t) * CHAR_BIT - 1) : (t) 0)) |
0 | 328 #define INTTYPE_MAXIMUM(t) ((t) (~ (t) 0 - INTTYPE_MINIMUM (t))) |
329 | |
330 /* Use that infrastructure to provide a few constants. */ | |
331 #ifndef UCHAR_MAX | |
332 # define UCHAR_MAX INTTYPE_MAXIMUM (unsigned char) | |
333 #endif | |
334 | |
335 #ifdef TIME_WITH_SYS_TIME | |
336 # include <sys/time.h> | |
337 # include <time.h> | |
338 #else | |
339 # if HAVE_SYS_TIME_H | |
340 # include <sys/time.h> | |
341 # else | |
342 # ifdef HAVE_TIME_H | |
343 # include <time.h> | |
344 # endif | |
345 # endif | |
346 #endif | |
347 | |
348 #ifdef HAVE_FCNTL_H | |
349 # include <fcntl.h> | |
350 #else | |
351 # ifdef HAVE_SYS_FILE_H | |
352 # include <sys/file.h> | |
353 # endif | |
354 #endif | |
355 | |
356 #ifndef SEEK_SET | |
357 # define SEEK_SET 0 | |
358 # define SEEK_CUR 1 | |
359 # define SEEK_END 2 | |
360 #endif | |
361 #ifndef F_OK | |
362 # define F_OK 0 | |
363 # define X_OK 1 | |
364 # define W_OK 2 | |
365 # define R_OK 4 | |
366 #endif | |
367 #ifndef O_RDONLY | |
368 # define O_RDONLY 0 | |
369 #endif | |
370 #ifndef O_WRONLY | |
371 # define O_WRONLY 1 | |
372 #endif | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
373 #ifndef O_BINARY |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
374 # define O_BINARY 0 |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
375 #endif |
0 | 376 |
377 /* Some systems define these in, e.g., param.h. We undefine these names | |
378 here to avoid the warnings. We prefer to use our definitions since we | |
379 know they are correct. */ | |
380 | |
381 #undef MIN | |
382 #undef MAX | |
383 #define MIN(X,Y) ((X) < (Y) ? (X) : (Y)) | |
384 #define MAX(X,Y) ((X) > (Y) ? (X) : (Y)) | |
385 | |
386 /* Returns the least number N such that N * Y >= X. */ | |
387 #define CEIL(x,y) (((x) + (y) - 1) / (y)) | |
388 | |
111 | 389 /* This macro rounds x up to the y boundary. */ |
390 #define ROUND_UP(x,y) (((x) + (y) - 1) & ~((y) - 1)) | |
391 | |
392 /* This macro rounds x down to the y boundary. */ | |
393 #define ROUND_DOWN(x,y) ((x) & ~((y) - 1)) | |
394 | |
0 | 395 #ifdef HAVE_SYS_WAIT_H |
396 #include <sys/wait.h> | |
397 #endif | |
398 | |
399 #ifndef WIFSIGNALED | |
400 #define WIFSIGNALED(S) (((S) & 0xff) != 0 && ((S) & 0xff) != 0x7f) | |
401 #endif | |
402 #ifndef WTERMSIG | |
403 #define WTERMSIG(S) ((S) & 0x7f) | |
404 #endif | |
405 #ifndef WIFEXITED | |
406 #define WIFEXITED(S) (((S) & 0xff) == 0) | |
407 #endif | |
408 #ifndef WEXITSTATUS | |
409 #define WEXITSTATUS(S) (((S) & 0xff00) >> 8) | |
410 #endif | |
411 #ifndef WSTOPSIG | |
412 #define WSTOPSIG WEXITSTATUS | |
413 #endif | |
414 #ifndef WCOREDUMP | |
415 #define WCOREDUMP(S) ((S) & WCOREFLG) | |
416 #endif | |
417 #ifndef WCOREFLG | |
418 #define WCOREFLG 0200 | |
419 #endif | |
420 | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
421 #include <signal.h> |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
422 #if !defined (SIGCHLD) && defined (SIGCLD) |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
423 # define SIGCHLD SIGCLD |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
424 #endif |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
425 |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
426 #ifdef HAVE_SYS_MMAN_H |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
427 # include <sys/mman.h> |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
428 #endif |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
429 |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
430 #ifndef MAP_FAILED |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
431 # define MAP_FAILED ((void *)-1) |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
432 #endif |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
433 |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
434 #if !defined (MAP_ANONYMOUS) && defined (MAP_ANON) |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
435 # define MAP_ANONYMOUS MAP_ANON |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
436 #endif |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
437 |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
438 #ifdef HAVE_SYS_RESOURCE_H |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
439 # include <sys/resource.h> |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
440 #endif |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
441 |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
442 #ifdef HAVE_SYS_TIMES_H |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
443 # include <sys/times.h> |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
444 #endif |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
445 |
0 | 446 /* The HAVE_DECL_* macros are three-state, undefined, 0 or 1. If they |
447 are defined to 0 then we must provide the relevant declaration | |
448 here. These checks will be in the undefined state while configure | |
449 is running so be careful to test "defined (HAVE_DECL_*)". */ | |
450 | |
111 | 451 #ifdef __cplusplus |
452 extern "C" { | |
453 #endif | |
454 | |
0 | 455 #if defined (HAVE_DECL_ATOF) && !HAVE_DECL_ATOF |
456 extern double atof (const char *); | |
457 #endif | |
458 | |
459 #if defined (HAVE_DECL_ATOL) && !HAVE_DECL_ATOL | |
460 extern long atol (const char *); | |
461 #endif | |
462 | |
463 #if defined (HAVE_DECL_FREE) && !HAVE_DECL_FREE | |
464 extern void free (void *); | |
465 #endif | |
466 | |
467 #if defined (HAVE_DECL_GETCWD) && !HAVE_DECL_GETCWD | |
468 extern char *getcwd (char *, size_t); | |
469 #endif | |
470 | |
471 #if defined (HAVE_DECL_GETENV) && !HAVE_DECL_GETENV | |
472 extern char *getenv (const char *); | |
473 #endif | |
474 | |
475 #if defined (HAVE_DECL_GETOPT) && !HAVE_DECL_GETOPT | |
476 extern int getopt (int, char * const *, const char *); | |
477 #endif | |
478 | |
479 #if defined (HAVE_DECL_GETPAGESIZE) && !HAVE_DECL_GETPAGESIZE | |
480 extern int getpagesize (void); | |
481 #endif | |
482 | |
483 #if defined (HAVE_DECL_GETWD) && !HAVE_DECL_GETWD | |
484 extern char *getwd (char *); | |
485 #endif | |
486 | |
487 #if defined (HAVE_DECL_SBRK) && !HAVE_DECL_SBRK | |
488 extern void *sbrk (int); | |
489 #endif | |
490 | |
111 | 491 #if defined (HAVE_DECL_SETENV) && !HAVE_DECL_SETENV |
492 int setenv(const char *, const char *, int); | |
493 #endif | |
494 | |
0 | 495 #if defined (HAVE_DECL_STRSTR) && !HAVE_DECL_STRSTR |
496 extern char *strstr (const char *, const char *); | |
497 #endif | |
498 | |
111 | 499 #if defined (HAVE_DECL_STPCPY) && !HAVE_DECL_STPCPY |
500 extern char *stpcpy (char *, const char *); | |
501 #endif | |
502 | |
503 #if defined (HAVE_DECL_UNSETENV) && !HAVE_DECL_UNSETENV | |
504 int unsetenv(const char *); | |
0 | 505 #endif |
506 | |
507 #if defined (HAVE_DECL_MALLOC) && !HAVE_DECL_MALLOC | |
508 extern void *malloc (size_t); | |
509 #endif | |
510 | |
511 #if defined (HAVE_DECL_CALLOC) && !HAVE_DECL_CALLOC | |
512 extern void *calloc (size_t, size_t); | |
513 #endif | |
514 | |
515 #if defined (HAVE_DECL_REALLOC) && !HAVE_DECL_REALLOC | |
516 extern void *realloc (void *, size_t); | |
517 #endif | |
518 | |
111 | 519 #ifdef __cplusplus |
520 } | |
521 #endif | |
522 | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
523 #ifdef HAVE_STDINT_H |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
524 #include <stdint.h> |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
525 #endif |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
526 |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
527 #ifdef HAVE_INTTYPES_H |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
528 #include <inttypes.h> |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
529 #endif |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
530 |
111 | 531 #ifdef __cplusplus |
532 extern "C" { | |
533 #endif | |
534 | |
0 | 535 /* If the system doesn't provide strsignal, we get it defined in |
536 libiberty but no declaration is supplied. */ | |
537 #if !defined (HAVE_STRSIGNAL) \ | |
538 || (defined (HAVE_DECL_STRSIGNAL) && !HAVE_DECL_STRSIGNAL) | |
539 # ifndef strsignal | |
540 extern const char *strsignal (int); | |
541 # endif | |
542 #endif | |
543 | |
544 #ifdef HAVE_GETRLIMIT | |
545 # if defined (HAVE_DECL_GETRLIMIT) && !HAVE_DECL_GETRLIMIT | |
546 # ifndef getrlimit | |
547 struct rlimit; | |
548 extern int getrlimit (int, struct rlimit *); | |
549 # endif | |
550 # endif | |
551 #endif | |
552 | |
553 #ifdef HAVE_SETRLIMIT | |
554 # if defined (HAVE_DECL_SETRLIMIT) && !HAVE_DECL_SETRLIMIT | |
555 # ifndef setrlimit | |
556 struct rlimit; | |
557 extern int setrlimit (int, const struct rlimit *); | |
558 # endif | |
559 # endif | |
560 #endif | |
561 | |
562 #if defined (HAVE_DECL_ABORT) && !HAVE_DECL_ABORT | |
563 extern void abort (void); | |
564 #endif | |
565 | |
566 #if defined (HAVE_DECL_SNPRINTF) && !HAVE_DECL_SNPRINTF | |
567 extern int snprintf (char *, size_t, const char *, ...); | |
568 #endif | |
569 | |
570 #if defined (HAVE_DECL_VSNPRINTF) && !HAVE_DECL_VSNPRINTF | |
111 | 571 extern int vsnprintf (char *, size_t, const char *, va_list); |
572 #endif | |
573 | |
574 #ifdef __cplusplus | |
575 } | |
0 | 576 #endif |
577 | |
578 /* 1 if we have C99 designated initializers. */ | |
579 #if !defined(HAVE_DESIGNATED_INITIALIZERS) | |
111 | 580 #ifdef __cplusplus |
581 #define HAVE_DESIGNATED_INITIALIZERS 0 | |
582 #else | |
0 | 583 #define HAVE_DESIGNATED_INITIALIZERS \ |
111 | 584 ((GCC_VERSION >= 2007) || (__STDC_VERSION__ >= 199901L)) |
585 #endif | |
586 #endif | |
587 | |
588 #if !defined(HAVE_DESIGNATED_UNION_INITIALIZERS) | |
589 #ifdef __cplusplus | |
590 #define HAVE_DESIGNATED_UNION_INITIALIZERS (GCC_VERSION >= 4007) | |
591 #else | |
592 #define HAVE_DESIGNATED_UNION_INITIALIZERS \ | |
593 ((GCC_VERSION >= 2007) || (__STDC_VERSION__ >= 199901L)) | |
594 #endif | |
0 | 595 #endif |
596 | |
597 #if HAVE_SYS_STAT_H | |
598 # include <sys/stat.h> | |
599 #endif | |
600 | |
601 /* Test if something is a normal file. */ | |
602 #ifndef S_ISREG | |
603 #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) | |
604 #endif | |
605 | |
606 /* Test if something is a directory. */ | |
607 #ifndef S_ISDIR | |
608 #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) | |
609 #endif | |
610 | |
611 /* Test if something is a character special file. */ | |
612 #ifndef S_ISCHR | |
613 #define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) | |
614 #endif | |
615 | |
616 /* Test if something is a block special file. */ | |
617 #ifndef S_ISBLK | |
618 #define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) | |
619 #endif | |
620 | |
621 /* Test if something is a socket. */ | |
622 #ifndef S_ISSOCK | |
623 # ifdef S_IFSOCK | |
624 # define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) | |
625 # else | |
626 # define S_ISSOCK(m) 0 | |
627 # endif | |
628 #endif | |
629 | |
630 /* Test if something is a FIFO. */ | |
631 #ifndef S_ISFIFO | |
632 # ifdef S_IFIFO | |
633 # define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) | |
634 # else | |
635 # define S_ISFIFO(m) 0 | |
636 # endif | |
637 #endif | |
638 | |
639 /* Define well known filenos if the system does not define them. */ | |
640 #ifndef STDIN_FILENO | |
641 # define STDIN_FILENO 0 | |
642 #endif | |
643 #ifndef STDOUT_FILENO | |
644 # define STDOUT_FILENO 1 | |
645 #endif | |
646 #ifndef STDERR_FILENO | |
647 # define STDERR_FILENO 2 | |
648 #endif | |
649 | |
650 /* Some systems have mkdir that takes a single argument. */ | |
651 #ifdef MKDIR_TAKES_ONE_ARG | |
111 | 652 # define mkdir(a,b) mkdir (a) |
0 | 653 #endif |
654 | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
655 #ifndef HAVE_KILL |
111 | 656 # define kill(p,s) raise (s) |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
657 #endif |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
658 |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
659 /* Provide a way to print an address via printf. */ |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
660 #ifndef HOST_PTR_PRINTF |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
661 #define HOST_PTR_PRINTF "%p" |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
662 #endif /* ! HOST_PTR_PRINTF */ |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
663 |
0 | 664 /* By default, colon separates directories in a path. */ |
665 #ifndef PATH_SEPARATOR | |
666 #define PATH_SEPARATOR ':' | |
667 #endif | |
668 | |
669 /* Filename handling macros. */ | |
670 #include "filenames.h" | |
671 | |
672 /* These should be phased out in favor of IS_DIR_SEPARATOR, where possible. */ | |
673 #ifndef DIR_SEPARATOR | |
674 # define DIR_SEPARATOR '/' | |
675 # ifdef HAVE_DOS_BASED_FILE_SYSTEM | |
676 # define DIR_SEPARATOR_2 '\\' | |
677 # endif | |
678 #endif | |
679 | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
680 #if defined (ENABLE_PLUGIN) && defined (HAVE_DLFCN_H) |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
681 /* If plugin support is enabled, we could use libdl. */ |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
682 #include <dlfcn.h> |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
683 #endif |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
684 |
111 | 685 /* Do not introduce a gmp.h dependency on the build system. */ |
686 #ifndef GENERATOR_FILE | |
687 #include <gmp.h> | |
688 #endif | |
689 | |
0 | 690 /* Get libiberty declarations. */ |
691 #include "libiberty.h" | |
692 | |
111 | 693 #undef FFS /* Some systems predefine this symbol; don't let it interfere. */ |
694 #undef FLOAT /* Likewise. */ | |
695 #undef ABS /* Likewise. */ | |
696 #undef PC /* Likewise. */ | |
697 | |
0 | 698 /* Provide a default for the HOST_BIT_BUCKET. |
699 This suffices for POSIX-like hosts. */ | |
700 | |
701 #ifndef HOST_BIT_BUCKET | |
702 #define HOST_BIT_BUCKET "/dev/null" | |
703 #endif | |
704 | |
705 #ifndef offsetof | |
706 #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER) | |
707 #endif | |
708 | |
709 /* Various error reporting routines want to use __FUNCTION__. */ | |
710 #if (GCC_VERSION < 2007) | |
711 #ifndef __FUNCTION__ | |
712 #define __FUNCTION__ "?" | |
713 #endif /* ! __FUNCTION__ */ | |
714 #endif | |
715 | |
716 /* __builtin_expect(A, B) evaluates to A, but notifies the compiler that | |
717 the most likely value of A is B. This feature was added at some point | |
718 between 2.95 and 3.0. Let's use 3.0 as the lower bound for now. */ | |
719 #if (GCC_VERSION < 3000) | |
720 #define __builtin_expect(a, b) (a) | |
721 #endif | |
722 | |
111 | 723 /* Some of the headers included by <memory> can use "abort" within a |
724 namespace, e.g. "_VSTD::abort();", which fails after we use the | |
725 preprocessor to redefine "abort" as "fancy_abort" below. | |
726 Given that unique-ptr.h can use "free", we need to do this after "free" | |
727 is declared but before "abort" is overridden. */ | |
728 | |
729 #ifdef INCLUDE_UNIQUE_PTR | |
730 # include "unique-ptr.h" | |
731 #endif | |
732 | |
0 | 733 /* Redefine abort to report an internal error w/o coredump, and |
734 reporting the location of the error in the source file. */ | |
111 | 735 extern void fancy_abort (const char *, int, const char *) |
736 ATTRIBUTE_NORETURN ATTRIBUTE_COLD; | |
0 | 737 #define abort() fancy_abort (__FILE__, __LINE__, __FUNCTION__) |
738 | |
739 /* Use gcc_assert(EXPR) to test invariants. */ | |
740 #if ENABLE_ASSERT_CHECKING | |
741 #define gcc_assert(EXPR) \ | |
742 ((void)(!(EXPR) ? fancy_abort (__FILE__, __LINE__, __FUNCTION__), 0 : 0)) | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
743 #elif (GCC_VERSION >= 4005) |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
744 #define gcc_assert(EXPR) \ |
111 | 745 ((void)(__builtin_expect (!(EXPR), 0) ? __builtin_unreachable (), 0 : 0)) |
0 | 746 #else |
747 /* Include EXPR, so that unused variable warnings do not occur. */ | |
748 #define gcc_assert(EXPR) ((void)(0 && (EXPR))) | |
749 #endif | |
750 | |
111 | 751 #if CHECKING_P |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
752 #define gcc_checking_assert(EXPR) gcc_assert (EXPR) |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
753 #else |
111 | 754 /* N.B.: in release build EXPR is not evaluated. */ |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
755 #define gcc_checking_assert(EXPR) ((void)(0 && (EXPR))) |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
756 #endif |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
757 |
111 | 758 #if GCC_VERSION >= 4000 |
759 #define ALWAYS_INLINE inline __attribute__ ((always_inline)) | |
760 #else | |
761 #define ALWAYS_INLINE inline | |
762 #endif | |
763 | |
0 | 764 /* Use gcc_unreachable() to mark unreachable locations (like an |
765 unreachable default case of a switch. Do not use gcc_assert(0). */ | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
766 #if (GCC_VERSION >= 4005) && !ENABLE_ASSERT_CHECKING |
111 | 767 #define gcc_unreachable() __builtin_unreachable () |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
768 #else |
0 | 769 #define gcc_unreachable() (fancy_abort (__FILE__, __LINE__, __FUNCTION__)) |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
770 #endif |
0 | 771 |
111 | 772 #if GCC_VERSION >= 7000 && defined(__has_attribute) |
773 # if __has_attribute(fallthrough) | |
774 # define gcc_fallthrough() __attribute__((fallthrough)) | |
775 # else | |
776 # define gcc_fallthrough() | |
777 # endif | |
778 #else | |
779 # define gcc_fallthrough() | |
780 #endif | |
781 | |
782 #if GCC_VERSION >= 3001 | |
783 #define STATIC_CONSTANT_P(X) (__builtin_constant_p (X) && (X)) | |
784 #else | |
785 #define STATIC_CONSTANT_P(X) (false && (X)) | |
786 #endif | |
787 | |
788 /* static_assert (COND, MESSAGE) is available in C++11 onwards. */ | |
789 #if __cplusplus >= 201103L | |
790 #define STATIC_ASSERT(X) \ | |
791 static_assert ((X), #X) | |
792 #else | |
793 #define STATIC_ASSERT(X) \ | |
794 typedef int assertion1[(X) ? 1 : -1] ATTRIBUTE_UNUSED | |
795 #endif | |
796 | |
0 | 797 /* Provide a fake boolean type. We make no attempt to use the |
798 C99 _Bool, as it may not be available in the bootstrap compiler, | |
799 and even if it is, it is liable to be buggy. | |
800 This must be after all inclusion of system headers, as some of | |
801 them will mess us up. */ | |
802 | |
803 #undef TRUE | |
804 #undef FALSE | |
805 | |
806 #ifdef __cplusplus | |
807 /* Obsolete. */ | |
808 # define TRUE true | |
809 # define FALSE false | |
810 #else /* !__cplusplus */ | |
811 # undef bool | |
812 # undef true | |
813 # undef false | |
814 | |
815 # define bool unsigned char | |
816 # define true 1 | |
817 # define false 0 | |
818 | |
819 /* Obsolete. */ | |
820 # define TRUE true | |
821 # define FALSE false | |
822 #endif /* !__cplusplus */ | |
823 | |
824 /* Some compilers do not allow the use of unsigned char in bitfields. */ | |
825 #define BOOL_BITFIELD unsigned int | |
826 | |
131 | 827 /* GCC older than 4.4 have broken C++ value initialization handling, see |
828 PR11309, PR30111, PR33916, PR82939 and PR84405 for more details. */ | |
829 #if GCC_VERSION > 0 && GCC_VERSION < 4004 && !defined(__clang__) | |
830 # define BROKEN_VALUE_INITIALIZATION | |
831 #endif | |
832 | |
0 | 833 /* As the last action in this file, we poison the identifiers that |
834 shouldn't be used. Note, luckily gcc-3.0's token-based integrated | |
835 preprocessor won't trip on poisoned identifiers that arrive from | |
836 the expansion of macros. E.g. #define strrchr rindex, won't error | |
837 if rindex is poisoned after this directive is issued and later on | |
838 strrchr is called. | |
839 | |
840 Note: We define bypass macros for the few cases where we really | |
841 want to use the libc memory allocation routines. Otherwise we | |
842 insist you use the "x" versions from libiberty. */ | |
843 | |
844 #define really_call_malloc malloc | |
845 #define really_call_calloc calloc | |
846 #define really_call_realloc realloc | |
847 | |
848 #if defined(FLEX_SCANNER) || defined(YYBISON) || defined(YYBYACC) | |
849 /* Flex and bison use malloc and realloc. Yuk. Note that this means | |
850 really_call_* cannot be used in a .l or .y file. */ | |
851 #define malloc xmalloc | |
852 #define realloc xrealloc | |
853 #endif | |
854 | |
855 #if (GCC_VERSION >= 3000) | |
856 | |
857 /* Note autoconf checks for prototype declarations and includes | |
858 system.h while doing so. Only poison these tokens if actually | |
859 compiling gcc, so that the autoconf declaration tests for malloc | |
860 etc don't spuriously fail. */ | |
861 #ifdef IN_GCC | |
111 | 862 |
863 #ifndef USES_ISL | |
0 | 864 #undef calloc |
865 #undef strdup | |
111 | 866 #undef strndup |
867 #pragma GCC poison calloc strdup strndup | |
868 #endif | |
0 | 869 |
870 #if !defined(FLEX_SCANNER) && !defined(YYBISON) | |
871 #undef malloc | |
872 #undef realloc | |
873 #pragma GCC poison malloc realloc | |
874 #endif | |
875 | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
876 /* The %m format should be used when GCC's main diagnostic functions |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
877 supporting %m are available, and xstrerror from libiberty |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
878 otherwise. */ |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
879 #undef strerror |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
880 #pragma GCC poison strerror |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
881 |
111 | 882 /* loc_t is defined on some systems and too inviting for some |
883 programmers to avoid. */ | |
884 #undef loc_t | |
885 #pragma GCC poison loc_t | |
886 | |
0 | 887 /* Old target macros that have moved to the target hooks structure. */ |
888 #pragma GCC poison ASM_OPEN_PAREN ASM_CLOSE_PAREN \ | |
889 FUNCTION_PROLOGUE FUNCTION_EPILOGUE \ | |
890 FUNCTION_END_PROLOGUE FUNCTION_BEGIN_EPILOGUE \ | |
891 DECL_MACHINE_ATTRIBUTES COMP_TYPE_ATTRIBUTES INSERT_ATTRIBUTES \ | |
892 VALID_MACHINE_DECL_ATTRIBUTE VALID_MACHINE_TYPE_ATTRIBUTE \ | |
893 SET_DEFAULT_TYPE_ATTRIBUTES SET_DEFAULT_DECL_ATTRIBUTES \ | |
894 MERGE_MACHINE_TYPE_ATTRIBUTES MERGE_MACHINE_DECL_ATTRIBUTES \ | |
895 MD_INIT_BUILTINS MD_EXPAND_BUILTIN ASM_OUTPUT_CONSTRUCTOR \ | |
896 ASM_OUTPUT_DESTRUCTOR SIGNED_CHAR_SPEC MAX_CHAR_TYPE_SIZE \ | |
897 WCHAR_UNSIGNED UNIQUE_SECTION SELECT_SECTION SELECT_RTX_SECTION \ | |
898 ENCODE_SECTION_INFO STRIP_NAME_ENCODING ASM_GLOBALIZE_LABEL \ | |
899 ASM_OUTPUT_MI_THUNK CONST_COSTS RTX_COSTS DEFAULT_RTX_COSTS \ | |
900 ADDRESS_COST MACHINE_DEPENDENT_REORG ASM_FILE_START ASM_FILE_END \ | |
901 ASM_SIMPLIFY_DWARF_ADDR INIT_TARGET_OPTABS INIT_SUBTARGET_OPTABS \ | |
902 INIT_GOFAST_OPTABS MULSI3_LIBCALL MULDI3_LIBCALL DIVSI3_LIBCALL \ | |
903 DIVDI3_LIBCALL UDIVSI3_LIBCALL UDIVDI3_LIBCALL MODSI3_LIBCALL \ | |
904 MODDI3_LIBCALL UMODSI3_LIBCALL UMODDI3_LIBCALL BUILD_VA_LIST_TYPE \ | |
905 PRETEND_OUTGOING_VARARGS_NAMED STRUCT_VALUE_INCOMING_REGNUM \ | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
906 ASM_OUTPUT_SECTION_NAME PROMOTE_FUNCTION_ARGS PROMOTE_FUNCTION_MODE \ |
0 | 907 STRUCT_VALUE_INCOMING STRICT_ARGUMENT_NAMING \ |
908 PROMOTE_FUNCTION_RETURN PROMOTE_PROTOTYPES STRUCT_VALUE_REGNUM \ | |
909 SETUP_INCOMING_VARARGS EXPAND_BUILTIN_SAVEREGS \ | |
910 DEFAULT_SHORT_ENUMS SPLIT_COMPLEX_ARGS MD_ASM_CLOBBERS \ | |
911 HANDLE_PRAGMA_REDEFINE_EXTNAME HANDLE_PRAGMA_EXTERN_PREFIX \ | |
912 MUST_PASS_IN_STACK FUNCTION_ARG_PASS_BY_REFERENCE \ | |
913 VECTOR_MODE_SUPPORTED_P TARGET_SUPPORTS_HIDDEN \ | |
914 FUNCTION_ARG_PARTIAL_NREGS ASM_OUTPUT_DWARF_DTPREL \ | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
915 ALLOCATE_INITIAL_VALUE LEGITIMIZE_ADDRESS FRAME_POINTER_REQUIRED \ |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
916 CAN_ELIMINATE TRAMPOLINE_TEMPLATE INITIALIZE_TRAMPOLINE \ |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
917 TRAMPOLINE_ADJUST_ADDRESS STATIC_CHAIN STATIC_CHAIN_INCOMING \ |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
918 RETURN_POPS_ARGS UNITS_PER_SIMD_WORD OVERRIDE_OPTIONS \ |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
919 OPTIMIZATION_OPTIONS CLASS_LIKELY_SPILLED_P \ |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
920 USING_SJLJ_EXCEPTIONS TARGET_UNWIND_INFO \ |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
921 CAN_DEBUG_WITHOUT_FP UNLIKELY_EXECUTED_TEXT_SECTION_NAME \ |
111 | 922 HOT_TEXT_SECTION_NAME LEGITIMATE_CONSTANT_P ALWAYS_STRIP_DOTDOT \ |
923 OUTPUT_ADDR_CONST_EXTRA SMALL_REGISTER_CLASSES ASM_OUTPUT_IDENT \ | |
924 ASM_BYTE_OP MEMBER_TYPE_FORCES_BLK LIBGCC2_HAS_SF_MODE \ | |
925 LIBGCC2_HAS_DF_MODE LIBGCC2_HAS_XF_MODE LIBGCC2_HAS_TF_MODE \ | |
926 CLEAR_BY_PIECES_P MOVE_BY_PIECES_P SET_BY_PIECES_P \ | |
927 STORE_BY_PIECES_P TARGET_FLT_EVAL_METHOD \ | |
928 HARD_REGNO_CALL_PART_CLOBBERED HARD_REGNO_MODE_OK \ | |
929 MODES_TIEABLE_P FUNCTION_ARG_PADDING SLOW_UNALIGNED_ACCESS \ | |
930 HARD_REGNO_NREGS SECONDARY_MEMORY_NEEDED_MODE \ | |
931 SECONDARY_MEMORY_NEEDED CANNOT_CHANGE_MODE_CLASS \ | |
932 TRULY_NOOP_TRUNCATION FUNCTION_ARG_OFFSET CONSTANT_ALIGNMENT \ | |
933 STARTING_FRAME_OFFSET | |
934 | |
935 /* Target macros only used for code built for the target, that have | |
936 moved to libgcc-tm.h or have never been present elsewhere. */ | |
937 #pragma GCC poison DECLARE_LIBRARY_RENAMES LIBGCC2_GNU_PREFIX \ | |
938 MD_UNWIND_SUPPORT MD_FROB_UPDATE_CONTEXT ENABLE_EXECUTE_STACK \ | |
939 REG_VALUE_IN_UNWIND_CONTEXT ASSUME_EXTENDED_UNWIND_CONTEXT | |
0 | 940 |
941 /* Other obsolete target macros, or macros that used to be in target | |
942 headers and were not used, and may be obsolete or may never have | |
943 been used. */ | |
944 #pragma GCC poison INT_ASM_OP ASM_OUTPUT_EH_REGION_BEG CPP_PREDEFINES \ | |
945 ASM_OUTPUT_EH_REGION_END ASM_OUTPUT_LABELREF_AS_INT SMALL_STACK \ | |
946 DOESNT_NEED_UNWINDER EH_TABLE_LOOKUP OBJC_SELECTORS_WITHOUT_LABELS \ | |
947 OMIT_EH_TABLE EASY_DIV_EXPR IMPLICIT_FIX_EXPR \ | |
948 LONGJMP_RESTORE_FROM_STACK MAX_INT_TYPE_SIZE ASM_IDENTIFY_GCC \ | |
949 STDC_VALUE TRAMPOLINE_ALIGN ASM_IDENTIFY_GCC_AFTER_SOURCE \ | |
950 SLOW_ZERO_EXTEND SUBREG_REGNO_OFFSET DWARF_LINE_MIN_INSTR_LENGTH \ | |
951 TRADITIONAL_RETURN_FLOAT NO_BUILTIN_SIZE_TYPE \ | |
952 NO_BUILTIN_PTRDIFF_TYPE NO_BUILTIN_WCHAR_TYPE NO_BUILTIN_WINT_TYPE \ | |
953 BLOCK_PROFILER BLOCK_PROFILER_CODE FUNCTION_BLOCK_PROFILER \ | |
954 FUNCTION_BLOCK_PROFILER_EXIT MACHINE_STATE_SAVE \ | |
955 MACHINE_STATE_RESTORE SCCS_DIRECTIVE SECTION_ASM_OP BYTEORDER \ | |
956 ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL HOST_WORDS_BIG_ENDIAN \ | |
957 OBJC_PROLOGUE ALLOCATE_TRAMPOLINE HANDLE_PRAGMA ROUND_TYPE_SIZE \ | |
958 ROUND_TYPE_SIZE_UNIT CONST_SECTION_ASM_OP CRT_GET_RFIB_TEXT \ | |
959 DBX_LBRAC_FIRST DBX_OUTPUT_ENUM DBX_OUTPUT_SOURCE_FILENAME \ | |
960 DBX_WORKING_DIRECTORY INSN_CACHE_DEPTH INSN_CACHE_SIZE \ | |
961 INSN_CACHE_LINE_WIDTH INIT_SECTION_PREAMBLE NEED_ATEXIT ON_EXIT \ | |
962 EXIT_BODY OBJECT_FORMAT_ROSE MULTIBYTE_CHARS MAP_CHARACTER \ | |
963 LIBGCC_NEEDS_DOUBLE FINAL_PRESCAN_LABEL DEFAULT_CALLER_SAVES \ | |
964 LOAD_ARGS_REVERSED MAX_INTEGER_COMPUTATION_MODE \ | |
965 CONVERT_HARD_REGISTER_TO_SSA_P ASM_OUTPUT_MAIN_SOURCE_FILENAME \ | |
966 FIRST_INSN_ADDRESS TEXT_SECTION SHARED_BSS_SECTION_ASM_OP \ | |
967 PROMOTED_MODE EXPAND_BUILTIN_VA_END \ | |
968 LINKER_DOES_NOT_WORK_WITH_DWARF2 FUNCTION_ARG_KEEP_AS_REFERENCE \ | |
969 GIV_SORT_CRITERION MAX_LONG_TYPE_SIZE MAX_LONG_DOUBLE_TYPE_SIZE \ | |
970 MAX_WCHAR_TYPE_SIZE SHARED_SECTION_ASM_OP INTEGRATE_THRESHOLD \ | |
971 FINAL_REG_PARM_STACK_SPACE MAYBE_REG_PARM_STACK_SPACE \ | |
972 TRADITIONAL_PIPELINE_INTERFACE DFA_PIPELINE_INTERFACE \ | |
973 DBX_OUTPUT_STANDARD_TYPES BUILTIN_SETJMP_FRAME_VALUE \ | |
974 SUNOS4_SHARED_LIBRARIES PROMOTE_FOR_CALL_ONLY \ | |
975 SPACE_AFTER_L_OPTION NO_RECURSIVE_FUNCTION_CSE \ | |
976 DEFAULT_MAIN_RETURN TARGET_MEM_FUNCTIONS EXPAND_BUILTIN_VA_ARG \ | |
977 COLLECT_PARSE_FLAG DWARF2_GENERATE_TEXT_SECTION_LABEL WINNING_GDB \ | |
978 ASM_OUTPUT_FILENAME ASM_OUTPUT_SOURCE_LINE FILE_NAME_JOINER \ | |
979 GDB_INV_REF_REGPARM_STABS_LETTER DBX_MEMPARM_STABS_LETTER \ | |
980 PUT_SDB_SRC_FILE STABS_GCC_MARKER DBX_OUTPUT_FUNCTION_END \ | |
981 DBX_OUTPUT_GCC_MARKER DBX_FINISH_SYMBOL SDB_GENERATE_FAKE \ | |
982 NON_SAVING_SETJMP TARGET_LATE_RTL_PROLOGUE_EPILOGUE \ | |
983 CASE_DROPS_THROUGH TARGET_BELL TARGET_BS TARGET_CR TARGET_DIGIT0 \ | |
984 TARGET_ESC TARGET_FF TARGET_NEWLINE TARGET_TAB TARGET_VT \ | |
985 LINK_LIBGCC_SPECIAL DONT_ACCESS_GBLS_AFTER_EPILOGUE \ | |
986 TARGET_OPTIONS TARGET_SWITCHES EXTRA_CC_MODES FINALIZE_PIC \ | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
987 PREDICATE_CODES SPECIAL_MODE_PREDICATES UNALIGNED_WORD_ASM_OP \ |
0 | 988 EXTRA_SECTIONS EXTRA_SECTION_FUNCTIONS READONLY_DATA_SECTION \ |
989 TARGET_ASM_EXCEPTION_SECTION TARGET_ASM_EH_FRAME_SECTION \ | |
990 SMALL_ARG_MAX ASM_OUTPUT_SHARED_BSS ASM_OUTPUT_SHARED_COMMON \ | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
991 ASM_OUTPUT_SHARED_LOCAL ASM_MAKE_LABEL_LINKONCE \ |
63
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
55
diff
changeset
|
992 STACK_CHECK_PROBE_INTERVAL STACK_CHECK_PROBE_LOAD \ |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
993 ORDER_REGS_FOR_LOCAL_ALLOC FUNCTION_OUTGOING_VALUE \ |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
994 ASM_DECLARE_CONSTANT_NAME MODIFY_TARGET_NAME SWITCHES_NEED_SPACES \ |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
995 SWITCH_CURTAILS_COMPILATION SWITCH_TAKES_ARG WORD_SWITCH_TAKES_ARG \ |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
996 TARGET_OPTION_TRANSLATE_TABLE HANDLE_PRAGMA_PACK_PUSH_POP \ |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
997 HANDLE_SYSV_PRAGMA HANDLE_PRAGMA_WEAK CONDITIONAL_REGISTER_USAGE \ |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
998 FUNCTION_ARG_BOUNDARY MUST_USE_SJLJ_EXCEPTIONS US_SOFTWARE_GOFAST \ |
111 | 999 USING_SVR4_H SVR4_ASM_SPEC FUNCTION_ARG FUNCTION_ARG_ADVANCE \ |
1000 FUNCTION_INCOMING_ARG IRA_COVER_CLASSES TARGET_VERSION \ | |
1001 MACHINE_TYPE TARGET_HAS_TARGETCM ASM_OUTPUT_BSS \ | |
1002 SETJMP_VIA_SAVE_AREA FORBIDDEN_INC_DEC_CLASSES \ | |
1003 PREFERRED_OUTPUT_RELOAD_CLASS SYSTEM_INCLUDE_DIR \ | |
1004 STANDARD_INCLUDE_DIR STANDARD_INCLUDE_COMPONENT \ | |
1005 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES MIPS_DEBUGGING_INFO \ | |
1006 IDENT_ASM_OP ALL_COP_ADDITIONAL_REGISTER_NAMES DBX_OUTPUT_LBRAC \ | |
1007 DBX_OUTPUT_NFUN DBX_OUTPUT_RBRAC RANGE_TEST_NON_SHORT_CIRCUIT \ | |
1008 REAL_VALUE_TRUNCATE REVERSE_CONDEXEC_PREDICATES_P \ | |
1009 TARGET_ALIGN_ANON_BITFIELDS TARGET_NARROW_VOLATILE_BITFIELDS \ | |
1010 IDENT_ASM_OP UNALIGNED_SHORT_ASM_OP UNALIGNED_INT_ASM_OP \ | |
1011 UNALIGNED_LONG_ASM_OP UNALIGNED_DOUBLE_INT_ASM_OP \ | |
1012 USE_COMMON_FOR_ONE_ONLY IFCVT_EXTRA_FIELDS IFCVT_INIT_EXTRA_FIELDS \ | |
1013 CASE_USE_BIT_TESTS FIXUNS_TRUNC_LIKE_FIX_TRUNC \ | |
1014 GO_IF_MODE_DEPENDENT_ADDRESS DELAY_SLOTS_FOR_EPILOGUE \ | |
1015 ELIGIBLE_FOR_EPILOGUE_DELAY TARGET_C99_FUNCTIONS TARGET_HAS_SINCOS \ | |
1016 REG_CLASS_FROM_LETTER CONST_OK_FOR_LETTER_P \ | |
1017 CONST_DOUBLE_OK_FOR_LETTER_P EXTRA_CONSTRAINT \ | |
1018 REG_CLASS_FROM_CONSTRAINT REG_CLASS_FOR_CONSTRAINT \ | |
1019 EXTRA_CONSTRAINT_STR EXTRA_MEMORY_CONSTRAINT \ | |
1020 EXTRA_ADDRESS_CONSTRAINT CONST_DOUBLE_OK_FOR_CONSTRAINT_P \ | |
1021 CALLER_SAVE_PROFITABLE LARGEST_EXPONENT_IS_NORMAL \ | |
1022 ROUND_TOWARDS_ZERO SF_SIZE DF_SIZE XF_SIZE TF_SIZE LIBGCC2_TF_CEXT \ | |
1023 LIBGCC2_LONG_DOUBLE_TYPE_SIZE STRUCT_VALUE \ | |
1024 EH_FRAME_IN_DATA_SECTION TARGET_FLT_EVAL_METHOD_NON_DEFAULT \ | |
131 | 1025 JCR_SECTION_NAME TARGET_USE_JCR_SECTION SDB_DEBUGGING_INFO \ |
1026 SDB_DEBUG NO_IMPLICIT_EXTERN_C | |
0 | 1027 |
1028 /* Hooks that are no longer used. */ | |
1029 #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \ | |
1030 LANG_HOOKS_MARK_TREE LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES \ | |
1031 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS \ | |
1032 LANG_HOOKS_PUSHLEVEL LANG_HOOKS_SET_BLOCK \ | |
1033 LANG_HOOKS_MAYBE_BUILD_CLEANUP LANG_HOOKS_UPDATE_DECL_AFTER_SAVING \ | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
1034 LANG_HOOKS_POPLEVEL LANG_HOOKS_TRUTHVALUE_CONVERSION \ |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1035 TARGET_PROMOTE_FUNCTION_ARGS TARGET_PROMOTE_FUNCTION_RETURN \ |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1036 LANG_HOOKS_MISSING_ARGUMENT LANG_HOOKS_HASH_TYPES \ |
111 | 1037 TARGET_HANDLE_OFAST TARGET_OPTION_OPTIMIZATION \ |
1038 TARGET_IRA_COVER_CLASSES TARGET_HELP \ | |
1039 TARGET_HANDLE_PRAGMA_EXTERN_PREFIX \ | |
1040 TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_EVEN \ | |
1041 TARGET_VECTORIZE_BUILTIN_MUL_WIDEN_ODD \ | |
1042 TARGET_MD_ASM_CLOBBERS TARGET_RELAXED_ORDERING \ | |
1043 EXTENDED_SDB_BASIC_TYPES TARGET_INVALID_PARAMETER_TYPE \ | |
1044 TARGET_INVALID_RETURN_TYPE | |
1045 | |
1046 /* Arrays that were deleted in favor of a functional interface. */ | |
1047 #pragma GCC poison built_in_decls implicit_built_in_decls | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1048 |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1049 /* Hooks into libgcc2. */ |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1050 #pragma GCC poison LIBGCC2_DOUBLE_TYPE_SIZE LIBGCC2_WORDS_BIG_ENDIAN \ |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1051 LIBGCC2_FLOAT_WORDS_BIG_ENDIAN |
0 | 1052 |
1053 /* Miscellaneous macros that are no longer used. */ | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1054 #pragma GCC poison USE_MAPPED_LOCATION GET_ENVIRONMENT |
0 | 1055 |
1056 /* Libiberty macros that are no longer used in GCC. */ | |
1057 #undef ANSI_PROTOTYPES | |
1058 #undef PTR_CONST | |
1059 #undef LONG_DOUBLE | |
1060 #undef VPARAMS | |
1061 #undef VA_OPEN | |
1062 #undef VA_FIXEDARG | |
1063 #undef VA_CLOSE | |
1064 #undef VA_START | |
1065 #pragma GCC poison ANSI_PROTOTYPES PTR_CONST LONG_DOUBLE VPARAMS VA_OPEN \ | |
1066 VA_FIXEDARG VA_CLOSE VA_START | |
1067 #endif /* IN_GCC */ | |
1068 | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1069 /* Front ends should never have to include middle-end headers. Enforce |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1070 this by poisoning the header double-include protection defines. */ |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1071 #ifdef IN_GCC_FRONTEND |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1072 #pragma GCC poison GCC_RTL_H GCC_EXCEPT_H GCC_EXPR_H |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1073 #endif |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1074 |
0 | 1075 /* Note: not all uses of the `index' token (e.g. variable names and |
1076 structure members) have been eliminated. */ | |
1077 #undef bcopy | |
1078 #undef bzero | |
1079 #undef bcmp | |
1080 #undef rindex | |
1081 #pragma GCC poison bcopy bzero bcmp rindex | |
1082 | |
111 | 1083 /* Poison ENABLE_CHECKING macro that should be replaced with |
1084 'if (flag_checking)', or with CHECKING_P macro. */ | |
1085 #pragma GCC poison ENABLE_CHECKING | |
1086 | |
0 | 1087 #endif /* GCC >= 3.0 */ |
1088 | |
1089 /* This macro allows casting away const-ness to pass -Wcast-qual | |
1090 warnings. DO NOT USE THIS UNLESS YOU REALLY HAVE TO! It should | |
1091 only be used in certain specific cases. One valid case is where | |
1092 the C standard definitions or prototypes force you to. E.g. if you | |
1093 need to free a const object, or if you pass a const string to | |
1094 execv, et al. Another valid use would be in an allocation function | |
1095 that creates const objects that need to be initialized. In some | |
1096 cases we have non-const functions that return the argument | |
1097 (e.g. next_nonnote_insn). Rather than create const shadow | |
1098 functions, we can cast away const-ness in calling these interfaces | |
1099 if we're careful to verify that the called function does indeed not | |
1100 modify its argument and the return value is only used in a const | |
1101 context. (This can be somewhat dangerous as these assumptions can | |
1102 change after the fact). Beyond these uses, most other cases of | |
1103 using this macro should be viewed with extreme caution. */ | |
1104 | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
1105 #ifdef __cplusplus |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
1106 #define CONST_CAST2(TOTYPE,FROMTYPE,X) (const_cast<TOTYPE> (X)) |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
1107 #else |
0 | 1108 #if defined(__GNUC__) && GCC_VERSION > 4000 |
1109 /* GCC 4.0.x has a bug where it may ICE on this expression, | |
1110 so does GCC 3.4.x (PR17436). */ | |
1111 #define CONST_CAST2(TOTYPE,FROMTYPE,X) ((__extension__(union {FROMTYPE _q; TOTYPE _nq;})(X))._nq) | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1112 #elif defined(__GNUC__) |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1113 static inline char * |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1114 helper_const_non_const_cast (const char *p) |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1115 { |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1116 union { |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1117 const char *const_c; |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1118 char *c; |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1119 } val; |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1120 val.const_c = p; |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1121 return val.c; |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1122 } |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1123 |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1124 #define CONST_CAST2(TOTYPE,FROMTYPE,X) \ |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1125 ((TOTYPE) helper_const_non_const_cast ((const char *) (FROMTYPE) (X))) |
0 | 1126 #else |
1127 #define CONST_CAST2(TOTYPE,FROMTYPE,X) ((TOTYPE)(FROMTYPE)(X)) | |
1128 #endif | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
1129 #endif |
111 | 1130 #define CONST_CAST(TYPE,X) CONST_CAST2 (TYPE, const TYPE, (X)) |
1131 #define CONST_CAST_TREE(X) CONST_CAST (union tree_node *, (X)) | |
1132 #define CONST_CAST_RTX(X) CONST_CAST (struct rtx_def *, (X)) | |
1133 #define CONST_CAST_RTX_INSN(X) CONST_CAST (struct rtx_insn *, (X)) | |
1134 #define CONST_CAST_BB(X) CONST_CAST (struct basic_block_def *, (X)) | |
1135 #define CONST_CAST_GIMPLE(X) CONST_CAST (gimple *, (X)) | |
0 | 1136 |
1137 /* Activate certain diagnostics as warnings (not errors via the | |
1138 -Werror flag). */ | |
1139 #if GCC_VERSION >= 4003 | |
1140 /* If asserts are disabled, activate -Wuninitialized as a warning (not | |
1141 an error/-Werror). */ | |
1142 #ifndef ENABLE_ASSERT_CHECKING | |
1143 #pragma GCC diagnostic warning "-Wuninitialized" | |
1144 #endif | |
1145 #endif | |
1146 | |
111 | 1147 #ifdef ENABLE_VALGRIND_ANNOTATIONS |
0 | 1148 # ifdef HAVE_VALGRIND_MEMCHECK_H |
1149 # include <valgrind/memcheck.h> | |
1150 # elif defined HAVE_MEMCHECK_H | |
1151 # include <memcheck.h> | |
1152 # else | |
1153 # include <valgrind.h> | |
1154 # endif | |
1155 /* Compatibility macros to let valgrind 3.1 work. */ | |
1156 # ifndef VALGRIND_MAKE_MEM_NOACCESS | |
1157 # define VALGRIND_MAKE_MEM_NOACCESS VALGRIND_MAKE_NOACCESS | |
1158 # endif | |
1159 # ifndef VALGRIND_MAKE_MEM_DEFINED | |
1160 # define VALGRIND_MAKE_MEM_DEFINED VALGRIND_MAKE_READABLE | |
1161 # endif | |
1162 # ifndef VALGRIND_MAKE_MEM_UNDEFINED | |
1163 # define VALGRIND_MAKE_MEM_UNDEFINED VALGRIND_MAKE_WRITABLE | |
1164 # endif | |
1165 #else | |
1166 /* Avoid #ifdef:s when we can help it. */ | |
1167 #define VALGRIND_DISCARD(x) | |
1168 #define VALGRIND_MALLOCLIKE_BLOCK(w,x,y,z) | |
1169 #define VALGRIND_FREELIKE_BLOCK(x,y) | |
1170 #endif | |
1171 | |
111 | 1172 /* Macros to temporarily ignore some warnings. */ |
1173 #if GCC_VERSION >= 6000 | |
1174 #define GCC_DIAGNOSTIC_STRINGIFY(x) #x | |
1175 #define GCC_DIAGNOSTIC_PUSH_IGNORED(x) \ | |
1176 _Pragma ("GCC diagnostic push") \ | |
1177 _Pragma (GCC_DIAGNOSTIC_STRINGIFY (GCC diagnostic ignored #x)) | |
1178 #define GCC_DIAGNOSTIC_POP _Pragma ("GCC diagnostic pop") | |
1179 #else | |
1180 #define GCC_DIAGNOSTIC_PUSH_IGNORED(x) | |
1181 #define GCC_DIAGNOSTIC_POP | |
1182 #endif | |
1183 | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1184 /* In LTO -fwhole-program build we still want to keep the debug functions available |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1185 for debugger. Mark them as used to prevent removal. */ |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1186 #if (GCC_VERSION > 4000) |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1187 #define DEBUG_FUNCTION __attribute__ ((__used__)) |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1188 #define DEBUG_VARIABLE __attribute__ ((__used__)) |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1189 #else |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1190 #define DEBUG_FUNCTION |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1191 #define DEBUG_VARIABLE |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1192 #endif |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
63
diff
changeset
|
1193 |
111 | 1194 /* General macro to extract bit Y of X. */ |
1195 #define TEST_BIT(X, Y) (((X) >> (Y)) & 1) | |
1196 | |
1197 /* Get definitions of HOST_WIDE_INT. */ | |
1198 #include "hwint.h" | |
1199 | |
131 | 1200 /* GCC qsort API-compatible functions: except in release-checking compilers, |
1201 redirect 4-argument qsort calls to gcc_qsort; keep 1-argument invocations | |
111 | 1202 corresponding to vec::qsort (cmp): they use C qsort internally anyway. */ |
131 | 1203 void qsort_chk (void *, size_t, size_t, int (*)(const void *, const void *)); |
1204 void gcc_qsort (void *, size_t, size_t, int (*)(const void *, const void *)); | |
1205 void gcc_stablesort (void *, size_t, size_t, | |
1206 int (*)(const void *, const void *)); | |
111 | 1207 #define PP_5th(a1, a2, a3, a4, a5, ...) a5 |
1208 #undef qsort | |
131 | 1209 #define qsort(...) PP_5th (__VA_ARGS__, gcc_qsort, 3, 2, qsort, 0) (__VA_ARGS__) |
111 | 1210 |
0 | 1211 #endif /* ! GCC_SYSTEM_H */ |