Mercurial > hg > CbC > CbC_gcc
annotate gcc/system.h @ 67:f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
author | nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 22 Mar 2011 17:18:12 +0900 |
parents | b7f97abdc517 |
children | 04ced10e8804 |
rev | line source |
---|---|
0 | 1 /* Get common system includes and various definitions and declarations based |
2 on autoconf macros. | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
3 Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, |
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
|
4 2009, 2010 |
0 | 5 Free Software Foundation, Inc. |
6 | |
7 This file is part of GCC. | |
8 | |
9 GCC is free software; you can redistribute it and/or modify it under | |
10 the terms of the GNU General Public License as published by the Free | |
11 Software Foundation; either version 3, or (at your option) any later | |
12 version. | |
13 | |
14 GCC is distributed in the hope that it will be useful, but WITHOUT ANY | |
15 WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
16 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
17 for more details. | |
18 | |
19 You should have received a copy of the GNU General Public License | |
20 along with GCC; see the file COPYING3. If not see | |
21 <http://www.gnu.org/licenses/>. */ | |
22 | |
23 | |
24 #ifndef GCC_SYSTEM_H | |
25 #define GCC_SYSTEM_H | |
26 | |
27 /* We must include stdarg.h before stdio.h. */ | |
28 #include <stdarg.h> | |
29 | |
30 #ifndef va_copy | |
31 # ifdef __va_copy | |
32 # define va_copy(d,s) __va_copy((d),(s)) | |
33 # else | |
34 # define va_copy(d,s) ((d) = (s)) | |
35 # endif | |
36 #endif | |
37 | |
38 #ifdef HAVE_STDDEF_H | |
39 # include <stddef.h> | |
40 #endif | |
41 | |
42 #include <stdio.h> | |
43 | |
44 /* Define a generic NULL if one hasn't already been defined. */ | |
45 #ifndef NULL | |
46 #define NULL 0 | |
47 #endif | |
48 | |
49 /* Use the unlocked open routines from libiberty. */ | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
50 #ifdef fopen /* fopen is a #define on VMS. */ |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
51 #undef fopen |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
52 #endif |
0 | 53 #define fopen(PATH,MODE) fopen_unlocked(PATH,MODE) |
54 #define fdopen(FILDES,MODE) fdopen_unlocked(FILDES,MODE) | |
55 #define freopen(PATH,MODE,STREAM) freopen_unlocked(PATH,MODE,STREAM) | |
56 | |
57 /* The compiler is not a multi-threaded application and therefore we | |
58 do not have to use the locking functions. In fact, using the locking | |
59 functions can cause the compiler to be significantly slower under | |
60 I/O bound conditions (such as -g -O0 on very large source files). | |
61 | |
62 HAVE_DECL_PUTC_UNLOCKED actually indicates whether or not the stdio | |
63 code is multi-thread safe by default. If it is set to 0, then do | |
64 not worry about using the _unlocked functions. | |
65 | |
66 fputs_unlocked, fwrite_unlocked, and fprintf_unlocked are | |
67 extensions and need to be prototyped by hand (since we do not | |
68 define _GNU_SOURCE). */ | |
69 | |
70 #if defined HAVE_DECL_PUTC_UNLOCKED && HAVE_DECL_PUTC_UNLOCKED | |
71 | |
72 # ifdef HAVE_PUTC_UNLOCKED | |
73 # undef putc | |
74 # define putc(C, Stream) putc_unlocked (C, Stream) | |
75 # endif | |
76 # ifdef HAVE_PUTCHAR_UNLOCKED | |
77 # undef putchar | |
78 # define putchar(C) putchar_unlocked (C) | |
79 # endif | |
80 # ifdef HAVE_GETC_UNLOCKED | |
81 # undef getc | |
82 # define getc(Stream) getc_unlocked (Stream) | |
83 # endif | |
84 # ifdef HAVE_GETCHAR_UNLOCKED | |
85 # undef getchar | |
86 # define getchar() getchar_unlocked () | |
87 # endif | |
88 # ifdef HAVE_FPUTC_UNLOCKED | |
89 # undef fputc | |
90 # define fputc(C, Stream) fputc_unlocked (C, Stream) | |
91 # endif | |
92 | |
93 # ifdef HAVE_CLEARERR_UNLOCKED | |
94 # undef clearerr | |
95 # define clearerr(Stream) clearerr_unlocked (Stream) | |
96 # if defined (HAVE_DECL_CLEARERR_UNLOCKED) && !HAVE_DECL_CLEARERR_UNLOCKED | |
97 extern void clearerr_unlocked (FILE *); | |
98 # endif | |
99 # endif | |
100 # ifdef HAVE_FEOF_UNLOCKED | |
101 # undef feof | |
102 # define feof(Stream) feof_unlocked (Stream) | |
103 # if defined (HAVE_DECL_FEOF_UNLOCKED) && !HAVE_DECL_FEOF_UNLOCKED | |
104 extern int feof_unlocked (FILE *); | |
105 # endif | |
106 # endif | |
107 # ifdef HAVE_FILENO_UNLOCKED | |
108 # undef fileno | |
109 # define fileno(Stream) fileno_unlocked (Stream) | |
110 # if defined (HAVE_DECL_FILENO_UNLOCKED) && !HAVE_DECL_FILENO_UNLOCKED | |
111 extern int fileno_unlocked (FILE *); | |
112 # endif | |
113 # endif | |
114 # ifdef HAVE_FFLUSH_UNLOCKED | |
115 # undef fflush | |
116 # define fflush(Stream) fflush_unlocked (Stream) | |
117 # if defined (HAVE_DECL_FFLUSH_UNLOCKED) && !HAVE_DECL_FFLUSH_UNLOCKED | |
118 extern int fflush_unlocked (FILE *); | |
119 # endif | |
120 # endif | |
121 # ifdef HAVE_FGETC_UNLOCKED | |
122 # undef fgetc | |
123 # define fgetc(Stream) fgetc_unlocked (Stream) | |
124 # if defined (HAVE_DECL_FGETC_UNLOCKED) && !HAVE_DECL_FGETC_UNLOCKED | |
125 extern int fgetc_unlocked (FILE *); | |
126 # endif | |
127 # endif | |
128 # ifdef HAVE_FGETS_UNLOCKED | |
129 # undef fgets | |
130 # define fgets(S, n, Stream) fgets_unlocked (S, n, Stream) | |
131 # if defined (HAVE_DECL_FGETS_UNLOCKED) && !HAVE_DECL_FGETS_UNLOCKED | |
132 extern char *fgets_unlocked (char *, int, FILE *); | |
133 # endif | |
134 # endif | |
135 # ifdef HAVE_FPUTS_UNLOCKED | |
136 # undef fputs | |
137 # define fputs(String, Stream) fputs_unlocked (String, Stream) | |
138 # if defined (HAVE_DECL_FPUTS_UNLOCKED) && !HAVE_DECL_FPUTS_UNLOCKED | |
139 extern int fputs_unlocked (const char *, FILE *); | |
140 # endif | |
141 # endif | |
142 # ifdef HAVE_FERROR_UNLOCKED | |
143 # undef ferror | |
144 # define ferror(Stream) ferror_unlocked (Stream) | |
145 # if defined (HAVE_DECL_FERROR_UNLOCKED) && !HAVE_DECL_FERROR_UNLOCKED | |
146 extern int ferror_unlocked (FILE *); | |
147 # endif | |
148 # endif | |
149 # ifdef HAVE_FREAD_UNLOCKED | |
150 # undef fread | |
151 # define fread(Ptr, Size, N, Stream) fread_unlocked (Ptr, Size, N, Stream) | |
152 # if defined (HAVE_DECL_FREAD_UNLOCKED) && !HAVE_DECL_FREAD_UNLOCKED | |
153 extern size_t fread_unlocked (void *, size_t, size_t, FILE *); | |
154 # endif | |
155 # endif | |
156 # ifdef HAVE_FWRITE_UNLOCKED | |
157 # undef fwrite | |
158 # define fwrite(Ptr, Size, N, Stream) fwrite_unlocked (Ptr, Size, N, Stream) | |
159 # if defined (HAVE_DECL_FWRITE_UNLOCKED) && !HAVE_DECL_FWRITE_UNLOCKED | |
160 extern size_t fwrite_unlocked (const void *, size_t, size_t, FILE *); | |
161 # endif | |
162 # endif | |
163 # ifdef HAVE_FPRINTF_UNLOCKED | |
164 # undef fprintf | |
165 /* We can't use a function-like macro here because we don't know if | |
166 we have varargs macros. */ | |
167 # define fprintf fprintf_unlocked | |
168 # if defined (HAVE_DECL_FPRINTF_UNLOCKED) && !HAVE_DECL_FPRINTF_UNLOCKED | |
169 extern int fprintf_unlocked (FILE *, const char *, ...); | |
170 # endif | |
171 # endif | |
172 | |
173 #endif | |
174 | |
175 /* ??? Glibc's fwrite/fread_unlocked macros cause | |
176 "warning: signed and unsigned type in conditional expression". */ | |
177 #undef fread_unlocked | |
178 #undef fwrite_unlocked | |
179 | |
180 /* There are an extraordinary number of issues with <ctype.h>. | |
181 The last straw is that it varies with the locale. Use libiberty's | |
182 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
|
183 #include "safe-ctype.h" |
0 | 184 |
185 #include <sys/types.h> | |
186 | |
187 #include <errno.h> | |
188 | |
189 #if !defined (errno) && defined (HAVE_DECL_ERRNO) && !HAVE_DECL_ERRNO | |
190 extern int errno; | |
191 #endif | |
192 | |
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
|
193 #ifdef __cplusplus |
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
|
194 # include <cstring> |
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
|
195 #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
|
196 |
0 | 197 /* Some of glibc's string inlines cause warnings. Plus we'd rather |
198 rely on (and therefore test) GCC's string builtins. */ | |
199 #define __NO_STRING_INLINES | |
200 | |
201 #ifdef STRING_WITH_STRINGS | |
202 # include <string.h> | |
203 # include <strings.h> | |
204 #else | |
205 # ifdef HAVE_STRING_H | |
206 # include <string.h> | |
207 # else | |
208 # ifdef HAVE_STRINGS_H | |
209 # include <strings.h> | |
210 # endif | |
211 # endif | |
212 #endif | |
213 | |
214 #ifdef HAVE_STDLIB_H | |
215 # include <stdlib.h> | |
216 #endif | |
217 | |
218 /* If we don't have an overriding definition, set SUCCESS_EXIT_CODE and | |
219 FATAL_EXIT_CODE to EXIT_SUCCESS and EXIT_FAILURE respectively, | |
220 or 0 and 1 if those macros are not defined. */ | |
221 #ifndef SUCCESS_EXIT_CODE | |
222 # ifdef EXIT_SUCCESS | |
223 # define SUCCESS_EXIT_CODE EXIT_SUCCESS | |
224 # else | |
225 # define SUCCESS_EXIT_CODE 0 | |
226 # endif | |
227 #endif | |
228 | |
229 #ifndef FATAL_EXIT_CODE | |
230 # ifdef EXIT_FAILURE | |
231 # define FATAL_EXIT_CODE EXIT_FAILURE | |
232 # else | |
233 # define FATAL_EXIT_CODE 1 | |
234 # endif | |
235 #endif | |
236 | |
237 #define ICE_EXIT_CODE 4 | |
238 | |
239 #ifdef HAVE_UNISTD_H | |
240 # include <unistd.h> | |
241 #endif | |
242 | |
243 #ifdef HAVE_SYS_PARAM_H | |
244 # include <sys/param.h> | |
245 /* We use this identifier later and it appears in some vendor param.h's. */ | |
246 # undef PREFETCH | |
247 #endif | |
248 | |
249 #if HAVE_LIMITS_H | |
250 # include <limits.h> | |
251 #endif | |
252 | |
253 /* Get definitions of HOST_WIDE_INT and HOST_WIDEST_INT. */ | |
254 #include "hwint.h" | |
255 | |
256 /* A macro to determine whether a VALUE lies inclusively within a | |
257 certain range without evaluating the VALUE more than once. This | |
258 macro won't warn if the VALUE is unsigned and the LOWER bound is | |
259 zero, as it would e.g. with "VALUE >= 0 && ...". Note the LOWER | |
260 bound *is* evaluated twice, and LOWER must not be greater than | |
261 UPPER. However the bounds themselves can be either positive or | |
262 negative. */ | |
263 #define IN_RANGE(VALUE, LOWER, UPPER) \ | |
264 ((unsigned HOST_WIDE_INT) (VALUE) - (unsigned HOST_WIDE_INT) (LOWER) \ | |
265 <= (unsigned HOST_WIDE_INT) (UPPER) - (unsigned HOST_WIDE_INT) (LOWER)) | |
266 | |
267 /* Infrastructure for defining missing _MAX and _MIN macros. Note that | |
268 macros defined with these cannot be used in #if. */ | |
269 | |
270 /* The extra casts work around common compiler bugs. */ | |
271 #define INTTYPE_SIGNED(t) (! ((t) 0 < (t) -1)) | |
272 /* The outer cast is needed to work around a bug in Cray C 5.0.3.0. | |
273 It is necessary at least when t == time_t. */ | |
274 #define INTTYPE_MINIMUM(t) ((t) (INTTYPE_SIGNED (t) \ | |
275 ? ~ (t) 0 << (sizeof(t) * CHAR_BIT - 1) : (t) 0)) | |
276 #define INTTYPE_MAXIMUM(t) ((t) (~ (t) 0 - INTTYPE_MINIMUM (t))) | |
277 | |
278 /* Use that infrastructure to provide a few constants. */ | |
279 #ifndef UCHAR_MAX | |
280 # define UCHAR_MAX INTTYPE_MAXIMUM (unsigned char) | |
281 #endif | |
282 | |
283 #ifdef TIME_WITH_SYS_TIME | |
284 # include <sys/time.h> | |
285 # include <time.h> | |
286 #else | |
287 # if HAVE_SYS_TIME_H | |
288 # include <sys/time.h> | |
289 # else | |
290 # ifdef HAVE_TIME_H | |
291 # include <time.h> | |
292 # endif | |
293 # endif | |
294 #endif | |
295 | |
296 #ifdef HAVE_FCNTL_H | |
297 # include <fcntl.h> | |
298 #else | |
299 # ifdef HAVE_SYS_FILE_H | |
300 # include <sys/file.h> | |
301 # endif | |
302 #endif | |
303 | |
304 #ifndef SEEK_SET | |
305 # define SEEK_SET 0 | |
306 # define SEEK_CUR 1 | |
307 # define SEEK_END 2 | |
308 #endif | |
309 #ifndef F_OK | |
310 # define F_OK 0 | |
311 # define X_OK 1 | |
312 # define W_OK 2 | |
313 # define R_OK 4 | |
314 #endif | |
315 #ifndef O_RDONLY | |
316 # define O_RDONLY 0 | |
317 #endif | |
318 #ifndef O_WRONLY | |
319 # define O_WRONLY 1 | |
320 #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
|
321 #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
|
322 # 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
|
323 #endif |
0 | 324 |
325 /* Some systems define these in, e.g., param.h. We undefine these names | |
326 here to avoid the warnings. We prefer to use our definitions since we | |
327 know they are correct. */ | |
328 | |
329 #undef MIN | |
330 #undef MAX | |
331 #define MIN(X,Y) ((X) < (Y) ? (X) : (Y)) | |
332 #define MAX(X,Y) ((X) > (Y) ? (X) : (Y)) | |
333 | |
334 /* Returns the least number N such that N * Y >= X. */ | |
335 #define CEIL(x,y) (((x) + (y) - 1) / (y)) | |
336 | |
337 #ifdef HAVE_SYS_WAIT_H | |
338 #include <sys/wait.h> | |
339 #endif | |
340 | |
341 #ifndef WIFSIGNALED | |
342 #define WIFSIGNALED(S) (((S) & 0xff) != 0 && ((S) & 0xff) != 0x7f) | |
343 #endif | |
344 #ifndef WTERMSIG | |
345 #define WTERMSIG(S) ((S) & 0x7f) | |
346 #endif | |
347 #ifndef WIFEXITED | |
348 #define WIFEXITED(S) (((S) & 0xff) == 0) | |
349 #endif | |
350 #ifndef WEXITSTATUS | |
351 #define WEXITSTATUS(S) (((S) & 0xff00) >> 8) | |
352 #endif | |
353 #ifndef WSTOPSIG | |
354 #define WSTOPSIG WEXITSTATUS | |
355 #endif | |
356 #ifndef WCOREDUMP | |
357 #define WCOREDUMP(S) ((S) & WCOREFLG) | |
358 #endif | |
359 #ifndef WCOREFLG | |
360 #define WCOREFLG 0200 | |
361 #endif | |
362 | |
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
|
363 #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
|
364 #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
|
365 # 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
|
366 #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
|
367 |
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
|
368 #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
|
369 # 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
|
370 #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
|
371 |
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
|
372 #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
|
373 # 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
|
374 #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
|
375 |
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
|
376 #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
|
377 # 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
|
378 #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
|
379 |
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
|
380 #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
|
381 # 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
|
382 #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
|
383 |
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
|
384 #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
|
385 # 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
|
386 #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
|
387 |
0 | 388 /* The HAVE_DECL_* macros are three-state, undefined, 0 or 1. If they |
389 are defined to 0 then we must provide the relevant declaration | |
390 here. These checks will be in the undefined state while configure | |
391 is running so be careful to test "defined (HAVE_DECL_*)". */ | |
392 | |
393 #if defined (HAVE_DECL_ATOF) && !HAVE_DECL_ATOF | |
394 extern double atof (const char *); | |
395 #endif | |
396 | |
397 #if defined (HAVE_DECL_ATOL) && !HAVE_DECL_ATOL | |
398 extern long atol (const char *); | |
399 #endif | |
400 | |
401 #if defined (HAVE_DECL_FREE) && !HAVE_DECL_FREE | |
402 extern void free (void *); | |
403 #endif | |
404 | |
405 #if defined (HAVE_DECL_GETCWD) && !HAVE_DECL_GETCWD | |
406 extern char *getcwd (char *, size_t); | |
407 #endif | |
408 | |
409 #if defined (HAVE_DECL_GETENV) && !HAVE_DECL_GETENV | |
410 extern char *getenv (const char *); | |
411 #endif | |
412 | |
413 #if defined (HAVE_DECL_GETOPT) && !HAVE_DECL_GETOPT | |
414 extern int getopt (int, char * const *, const char *); | |
415 #endif | |
416 | |
417 #if defined (HAVE_DECL_GETPAGESIZE) && !HAVE_DECL_GETPAGESIZE | |
418 extern int getpagesize (void); | |
419 #endif | |
420 | |
421 #if defined (HAVE_DECL_GETWD) && !HAVE_DECL_GETWD | |
422 extern char *getwd (char *); | |
423 #endif | |
424 | |
425 #if defined (HAVE_DECL_SBRK) && !HAVE_DECL_SBRK | |
426 extern void *sbrk (int); | |
427 #endif | |
428 | |
429 #if defined (HAVE_DECL_STRSTR) && !HAVE_DECL_STRSTR | |
430 extern char *strstr (const char *, const char *); | |
431 #endif | |
432 | |
433 #ifdef HAVE_MALLOC_H | |
434 #include <malloc.h> | |
435 #endif | |
436 | |
437 #if defined (HAVE_DECL_MALLOC) && !HAVE_DECL_MALLOC | |
438 extern void *malloc (size_t); | |
439 #endif | |
440 | |
441 #if defined (HAVE_DECL_CALLOC) && !HAVE_DECL_CALLOC | |
442 extern void *calloc (size_t, size_t); | |
443 #endif | |
444 | |
445 #if defined (HAVE_DECL_REALLOC) && !HAVE_DECL_REALLOC | |
446 extern void *realloc (void *, size_t); | |
447 #endif | |
448 | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
449 #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
|
450 #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
|
451 #endif |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
452 |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
453 #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
|
454 #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
|
455 #endif |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
456 |
0 | 457 /* If the system doesn't provide strsignal, we get it defined in |
458 libiberty but no declaration is supplied. */ | |
459 #if !defined (HAVE_STRSIGNAL) \ | |
460 || (defined (HAVE_DECL_STRSIGNAL) && !HAVE_DECL_STRSIGNAL) | |
461 # ifndef strsignal | |
462 extern const char *strsignal (int); | |
463 # endif | |
464 #endif | |
465 | |
466 #ifdef HAVE_GETRLIMIT | |
467 # if defined (HAVE_DECL_GETRLIMIT) && !HAVE_DECL_GETRLIMIT | |
468 # ifndef getrlimit | |
469 struct rlimit; | |
470 extern int getrlimit (int, struct rlimit *); | |
471 # endif | |
472 # endif | |
473 #endif | |
474 | |
475 #ifdef HAVE_SETRLIMIT | |
476 # if defined (HAVE_DECL_SETRLIMIT) && !HAVE_DECL_SETRLIMIT | |
477 # ifndef setrlimit | |
478 struct rlimit; | |
479 extern int setrlimit (int, const struct rlimit *); | |
480 # endif | |
481 # endif | |
482 #endif | |
483 | |
484 #if defined (HAVE_DECL_ABORT) && !HAVE_DECL_ABORT | |
485 extern void abort (void); | |
486 #endif | |
487 | |
488 #if defined (HAVE_DECL_SNPRINTF) && !HAVE_DECL_SNPRINTF | |
489 extern int snprintf (char *, size_t, const char *, ...); | |
490 #endif | |
491 | |
492 #if defined (HAVE_DECL_VSNPRINTF) && !HAVE_DECL_VSNPRINTF | |
493 extern int vsnprintf(char *, size_t, const char *, va_list); | |
494 #endif | |
495 | |
496 /* 1 if we have C99 designated initializers. */ | |
497 #if !defined(HAVE_DESIGNATED_INITIALIZERS) | |
498 #define HAVE_DESIGNATED_INITIALIZERS \ | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
499 (((GCC_VERSION >= 2007) || (__STDC_VERSION__ >= 199901L)) \ |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
500 && !defined(__cplusplus)) |
0 | 501 #endif |
502 | |
503 #if HAVE_SYS_STAT_H | |
504 # include <sys/stat.h> | |
505 #endif | |
506 | |
507 /* Test if something is a normal file. */ | |
508 #ifndef S_ISREG | |
509 #define S_ISREG(m) (((m) & S_IFMT) == S_IFREG) | |
510 #endif | |
511 | |
512 /* Test if something is a directory. */ | |
513 #ifndef S_ISDIR | |
514 #define S_ISDIR(m) (((m) & S_IFMT) == S_IFDIR) | |
515 #endif | |
516 | |
517 /* Test if something is a character special file. */ | |
518 #ifndef S_ISCHR | |
519 #define S_ISCHR(m) (((m) & S_IFMT) == S_IFCHR) | |
520 #endif | |
521 | |
522 /* Test if something is a block special file. */ | |
523 #ifndef S_ISBLK | |
524 #define S_ISBLK(m) (((m) & S_IFMT) == S_IFBLK) | |
525 #endif | |
526 | |
527 /* Test if something is a socket. */ | |
528 #ifndef S_ISSOCK | |
529 # ifdef S_IFSOCK | |
530 # define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK) | |
531 # else | |
532 # define S_ISSOCK(m) 0 | |
533 # endif | |
534 #endif | |
535 | |
536 /* Test if something is a FIFO. */ | |
537 #ifndef S_ISFIFO | |
538 # ifdef S_IFIFO | |
539 # define S_ISFIFO(m) (((m) & S_IFMT) == S_IFIFO) | |
540 # else | |
541 # define S_ISFIFO(m) 0 | |
542 # endif | |
543 #endif | |
544 | |
545 /* Define well known filenos if the system does not define them. */ | |
546 #ifndef STDIN_FILENO | |
547 # define STDIN_FILENO 0 | |
548 #endif | |
549 #ifndef STDOUT_FILENO | |
550 # define STDOUT_FILENO 1 | |
551 #endif | |
552 #ifndef STDERR_FILENO | |
553 # define STDERR_FILENO 2 | |
554 #endif | |
555 | |
556 /* Some systems have mkdir that takes a single argument. */ | |
557 #ifdef MKDIR_TAKES_ONE_ARG | |
558 # define mkdir(a,b) mkdir(a) | |
559 #endif | |
560 | |
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
|
561 #ifndef HAVE_KILL |
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
|
562 # define kill(p,s) raise(s) |
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
|
563 #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
|
564 |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
565 /* 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
|
566 #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
|
567 #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
|
568 #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
|
569 |
0 | 570 /* By default, colon separates directories in a path. */ |
571 #ifndef PATH_SEPARATOR | |
572 #define PATH_SEPARATOR ':' | |
573 #endif | |
574 | |
575 /* Filename handling macros. */ | |
576 #include "filenames.h" | |
577 | |
578 /* These should be phased out in favor of IS_DIR_SEPARATOR, where possible. */ | |
579 #ifndef DIR_SEPARATOR | |
580 # define DIR_SEPARATOR '/' | |
581 # ifdef HAVE_DOS_BASED_FILE_SYSTEM | |
582 # define DIR_SEPARATOR_2 '\\' | |
583 # endif | |
584 #endif | |
585 | |
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
|
586 #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
|
587 /* 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
|
588 #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
|
589 #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
|
590 |
0 | 591 /* Get libiberty declarations. */ |
592 #include "libiberty.h" | |
593 | |
594 /* Provide a default for the HOST_BIT_BUCKET. | |
595 This suffices for POSIX-like hosts. */ | |
596 | |
597 #ifndef HOST_BIT_BUCKET | |
598 #define HOST_BIT_BUCKET "/dev/null" | |
599 #endif | |
600 | |
601 /* Be conservative and only use enum bitfields with GCC. | |
602 FIXME: provide a complete autoconf test for buggy enum bitfields. */ | |
603 | |
604 #if (GCC_VERSION > 2000) | |
605 #define ENUM_BITFIELD(TYPE) __extension__ enum TYPE | |
606 #else | |
607 #define ENUM_BITFIELD(TYPE) unsigned int | |
608 #endif | |
609 | |
610 #ifndef offsetof | |
611 #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *) 0)->MEMBER) | |
612 #endif | |
613 | |
614 /* Various error reporting routines want to use __FUNCTION__. */ | |
615 #if (GCC_VERSION < 2007) | |
616 #ifndef __FUNCTION__ | |
617 #define __FUNCTION__ "?" | |
618 #endif /* ! __FUNCTION__ */ | |
619 #endif | |
620 | |
621 /* __builtin_expect(A, B) evaluates to A, but notifies the compiler that | |
622 the most likely value of A is B. This feature was added at some point | |
623 between 2.95 and 3.0. Let's use 3.0 as the lower bound for now. */ | |
624 #if (GCC_VERSION < 3000) | |
625 #define __builtin_expect(a, b) (a) | |
626 #endif | |
627 | |
628 /* Redefine abort to report an internal error w/o coredump, and | |
629 reporting the location of the error in the source file. */ | |
630 extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN; | |
631 #define abort() fancy_abort (__FILE__, __LINE__, __FUNCTION__) | |
632 | |
633 /* Use gcc_assert(EXPR) to test invariants. */ | |
634 #if ENABLE_ASSERT_CHECKING | |
635 #define gcc_assert(EXPR) \ | |
636 ((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
|
637 #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
|
638 #define gcc_assert(EXPR) \ |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
639 ((void)(__builtin_expect(!(EXPR), 0) ? __builtin_unreachable(), 0 : 0)) |
0 | 640 #else |
641 /* Include EXPR, so that unused variable warnings do not occur. */ | |
642 #define gcc_assert(EXPR) ((void)(0 && (EXPR))) | |
643 #endif | |
644 | |
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
|
645 #ifdef ENABLE_CHECKING |
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
|
646 #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
|
647 #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
|
648 #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
|
649 #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
|
650 |
0 | 651 /* Use gcc_unreachable() to mark unreachable locations (like an |
652 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
|
653 #if (GCC_VERSION >= 4005) && !ENABLE_ASSERT_CHECKING |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
654 #define gcc_unreachable() __builtin_unreachable() |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
655 #else |
0 | 656 #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
|
657 #endif |
0 | 658 |
659 /* Provide a fake boolean type. We make no attempt to use the | |
660 C99 _Bool, as it may not be available in the bootstrap compiler, | |
661 and even if it is, it is liable to be buggy. | |
662 This must be after all inclusion of system headers, as some of | |
663 them will mess us up. */ | |
664 | |
665 #undef TRUE | |
666 #undef FALSE | |
667 | |
668 #ifdef __cplusplus | |
669 /* Obsolete. */ | |
670 # define TRUE true | |
671 # define FALSE false | |
672 #else /* !__cplusplus */ | |
673 # undef bool | |
674 # undef true | |
675 # undef false | |
676 | |
677 # define bool unsigned char | |
678 # define true 1 | |
679 # define false 0 | |
680 | |
681 /* Obsolete. */ | |
682 # define TRUE true | |
683 # define FALSE false | |
684 #endif /* !__cplusplus */ | |
685 | |
686 /* Some compilers do not allow the use of unsigned char in bitfields. */ | |
687 #define BOOL_BITFIELD unsigned int | |
688 | |
689 /* As the last action in this file, we poison the identifiers that | |
690 shouldn't be used. Note, luckily gcc-3.0's token-based integrated | |
691 preprocessor won't trip on poisoned identifiers that arrive from | |
692 the expansion of macros. E.g. #define strrchr rindex, won't error | |
693 if rindex is poisoned after this directive is issued and later on | |
694 strrchr is called. | |
695 | |
696 Note: We define bypass macros for the few cases where we really | |
697 want to use the libc memory allocation routines. Otherwise we | |
698 insist you use the "x" versions from libiberty. */ | |
699 | |
700 #define really_call_malloc malloc | |
701 #define really_call_calloc calloc | |
702 #define really_call_realloc realloc | |
703 | |
704 #if defined(FLEX_SCANNER) || defined(YYBISON) || defined(YYBYACC) | |
705 /* Flex and bison use malloc and realloc. Yuk. Note that this means | |
706 really_call_* cannot be used in a .l or .y file. */ | |
707 #define malloc xmalloc | |
708 #define realloc xrealloc | |
709 #endif | |
710 | |
711 #if (GCC_VERSION >= 3000) | |
712 | |
713 /* Note autoconf checks for prototype declarations and includes | |
714 system.h while doing so. Only poison these tokens if actually | |
715 compiling gcc, so that the autoconf declaration tests for malloc | |
716 etc don't spuriously fail. */ | |
717 #ifdef IN_GCC | |
718 #undef calloc | |
719 #undef strdup | |
720 #pragma GCC poison calloc strdup | |
721 | |
722 #if !defined(FLEX_SCANNER) && !defined(YYBISON) | |
723 #undef malloc | |
724 #undef realloc | |
725 #pragma GCC poison malloc realloc | |
726 #endif | |
727 | |
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
|
728 /* 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
|
729 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
|
730 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
|
731 #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
|
732 #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
|
733 |
0 | 734 /* Old target macros that have moved to the target hooks structure. */ |
735 #pragma GCC poison ASM_OPEN_PAREN ASM_CLOSE_PAREN \ | |
736 FUNCTION_PROLOGUE FUNCTION_EPILOGUE \ | |
737 FUNCTION_END_PROLOGUE FUNCTION_BEGIN_EPILOGUE \ | |
738 DECL_MACHINE_ATTRIBUTES COMP_TYPE_ATTRIBUTES INSERT_ATTRIBUTES \ | |
739 VALID_MACHINE_DECL_ATTRIBUTE VALID_MACHINE_TYPE_ATTRIBUTE \ | |
740 SET_DEFAULT_TYPE_ATTRIBUTES SET_DEFAULT_DECL_ATTRIBUTES \ | |
741 MERGE_MACHINE_TYPE_ATTRIBUTES MERGE_MACHINE_DECL_ATTRIBUTES \ | |
742 MD_INIT_BUILTINS MD_EXPAND_BUILTIN ASM_OUTPUT_CONSTRUCTOR \ | |
743 ASM_OUTPUT_DESTRUCTOR SIGNED_CHAR_SPEC MAX_CHAR_TYPE_SIZE \ | |
744 WCHAR_UNSIGNED UNIQUE_SECTION SELECT_SECTION SELECT_RTX_SECTION \ | |
745 ENCODE_SECTION_INFO STRIP_NAME_ENCODING ASM_GLOBALIZE_LABEL \ | |
746 ASM_OUTPUT_MI_THUNK CONST_COSTS RTX_COSTS DEFAULT_RTX_COSTS \ | |
747 ADDRESS_COST MACHINE_DEPENDENT_REORG ASM_FILE_START ASM_FILE_END \ | |
748 ASM_SIMPLIFY_DWARF_ADDR INIT_TARGET_OPTABS INIT_SUBTARGET_OPTABS \ | |
749 INIT_GOFAST_OPTABS MULSI3_LIBCALL MULDI3_LIBCALL DIVSI3_LIBCALL \ | |
750 DIVDI3_LIBCALL UDIVSI3_LIBCALL UDIVDI3_LIBCALL MODSI3_LIBCALL \ | |
751 MODDI3_LIBCALL UMODSI3_LIBCALL UMODDI3_LIBCALL BUILD_VA_LIST_TYPE \ | |
752 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
|
753 ASM_OUTPUT_SECTION_NAME PROMOTE_FUNCTION_ARGS PROMOTE_FUNCTION_MODE \ |
0 | 754 STRUCT_VALUE_INCOMING STRICT_ARGUMENT_NAMING \ |
755 PROMOTE_FUNCTION_RETURN PROMOTE_PROTOTYPES STRUCT_VALUE_REGNUM \ | |
756 SETUP_INCOMING_VARARGS EXPAND_BUILTIN_SAVEREGS \ | |
757 DEFAULT_SHORT_ENUMS SPLIT_COMPLEX_ARGS MD_ASM_CLOBBERS \ | |
758 HANDLE_PRAGMA_REDEFINE_EXTNAME HANDLE_PRAGMA_EXTERN_PREFIX \ | |
759 MUST_PASS_IN_STACK FUNCTION_ARG_PASS_BY_REFERENCE \ | |
760 VECTOR_MODE_SUPPORTED_P TARGET_SUPPORTS_HIDDEN \ | |
761 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
|
762 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
|
763 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
|
764 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
|
765 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
|
766 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
|
767 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
|
768 LABEL_ALIGN_MAX_SKIP LOOP_ALIGN_MAX_SKIP \ |
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
|
769 LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP JUMP_ALIGN_MAX_SKIP \ |
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
|
770 CAN_DEBUG_WITHOUT_FP UNLIKELY_EXECUTED_TEXT_SECTION_NAME \ |
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
|
771 HOT_TEXT_SECTION_NAME |
0 | 772 |
773 /* Other obsolete target macros, or macros that used to be in target | |
774 headers and were not used, and may be obsolete or may never have | |
775 been used. */ | |
776 #pragma GCC poison INT_ASM_OP ASM_OUTPUT_EH_REGION_BEG CPP_PREDEFINES \ | |
777 ASM_OUTPUT_EH_REGION_END ASM_OUTPUT_LABELREF_AS_INT SMALL_STACK \ | |
778 DOESNT_NEED_UNWINDER EH_TABLE_LOOKUP OBJC_SELECTORS_WITHOUT_LABELS \ | |
779 OMIT_EH_TABLE EASY_DIV_EXPR IMPLICIT_FIX_EXPR \ | |
780 LONGJMP_RESTORE_FROM_STACK MAX_INT_TYPE_SIZE ASM_IDENTIFY_GCC \ | |
781 STDC_VALUE TRAMPOLINE_ALIGN ASM_IDENTIFY_GCC_AFTER_SOURCE \ | |
782 SLOW_ZERO_EXTEND SUBREG_REGNO_OFFSET DWARF_LINE_MIN_INSTR_LENGTH \ | |
783 TRADITIONAL_RETURN_FLOAT NO_BUILTIN_SIZE_TYPE \ | |
784 NO_BUILTIN_PTRDIFF_TYPE NO_BUILTIN_WCHAR_TYPE NO_BUILTIN_WINT_TYPE \ | |
785 BLOCK_PROFILER BLOCK_PROFILER_CODE FUNCTION_BLOCK_PROFILER \ | |
786 FUNCTION_BLOCK_PROFILER_EXIT MACHINE_STATE_SAVE \ | |
787 MACHINE_STATE_RESTORE SCCS_DIRECTIVE SECTION_ASM_OP BYTEORDER \ | |
788 ASM_OUTPUT_DEFINE_LABEL_DIFFERENCE_SYMBOL HOST_WORDS_BIG_ENDIAN \ | |
789 OBJC_PROLOGUE ALLOCATE_TRAMPOLINE HANDLE_PRAGMA ROUND_TYPE_SIZE \ | |
790 ROUND_TYPE_SIZE_UNIT CONST_SECTION_ASM_OP CRT_GET_RFIB_TEXT \ | |
791 DBX_LBRAC_FIRST DBX_OUTPUT_ENUM DBX_OUTPUT_SOURCE_FILENAME \ | |
792 DBX_WORKING_DIRECTORY INSN_CACHE_DEPTH INSN_CACHE_SIZE \ | |
793 INSN_CACHE_LINE_WIDTH INIT_SECTION_PREAMBLE NEED_ATEXIT ON_EXIT \ | |
794 EXIT_BODY OBJECT_FORMAT_ROSE MULTIBYTE_CHARS MAP_CHARACTER \ | |
795 LIBGCC_NEEDS_DOUBLE FINAL_PRESCAN_LABEL DEFAULT_CALLER_SAVES \ | |
796 LOAD_ARGS_REVERSED MAX_INTEGER_COMPUTATION_MODE \ | |
797 CONVERT_HARD_REGISTER_TO_SSA_P ASM_OUTPUT_MAIN_SOURCE_FILENAME \ | |
798 FIRST_INSN_ADDRESS TEXT_SECTION SHARED_BSS_SECTION_ASM_OP \ | |
799 PROMOTED_MODE EXPAND_BUILTIN_VA_END \ | |
800 LINKER_DOES_NOT_WORK_WITH_DWARF2 FUNCTION_ARG_KEEP_AS_REFERENCE \ | |
801 GIV_SORT_CRITERION MAX_LONG_TYPE_SIZE MAX_LONG_DOUBLE_TYPE_SIZE \ | |
802 MAX_WCHAR_TYPE_SIZE SHARED_SECTION_ASM_OP INTEGRATE_THRESHOLD \ | |
803 FINAL_REG_PARM_STACK_SPACE MAYBE_REG_PARM_STACK_SPACE \ | |
804 TRADITIONAL_PIPELINE_INTERFACE DFA_PIPELINE_INTERFACE \ | |
805 DBX_OUTPUT_STANDARD_TYPES BUILTIN_SETJMP_FRAME_VALUE \ | |
806 SUNOS4_SHARED_LIBRARIES PROMOTE_FOR_CALL_ONLY \ | |
807 SPACE_AFTER_L_OPTION NO_RECURSIVE_FUNCTION_CSE \ | |
808 DEFAULT_MAIN_RETURN TARGET_MEM_FUNCTIONS EXPAND_BUILTIN_VA_ARG \ | |
809 COLLECT_PARSE_FLAG DWARF2_GENERATE_TEXT_SECTION_LABEL WINNING_GDB \ | |
810 ASM_OUTPUT_FILENAME ASM_OUTPUT_SOURCE_LINE FILE_NAME_JOINER \ | |
811 GDB_INV_REF_REGPARM_STABS_LETTER DBX_MEMPARM_STABS_LETTER \ | |
812 PUT_SDB_SRC_FILE STABS_GCC_MARKER DBX_OUTPUT_FUNCTION_END \ | |
813 DBX_OUTPUT_GCC_MARKER DBX_FINISH_SYMBOL SDB_GENERATE_FAKE \ | |
814 NON_SAVING_SETJMP TARGET_LATE_RTL_PROLOGUE_EPILOGUE \ | |
815 CASE_DROPS_THROUGH TARGET_BELL TARGET_BS TARGET_CR TARGET_DIGIT0 \ | |
816 TARGET_ESC TARGET_FF TARGET_NEWLINE TARGET_TAB TARGET_VT \ | |
817 LINK_LIBGCC_SPECIAL DONT_ACCESS_GBLS_AFTER_EPILOGUE \ | |
818 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
|
819 PREDICATE_CODES SPECIAL_MODE_PREDICATES UNALIGNED_WORD_ASM_OP \ |
0 | 820 EXTRA_SECTIONS EXTRA_SECTION_FUNCTIONS READONLY_DATA_SECTION \ |
821 TARGET_ASM_EXCEPTION_SECTION TARGET_ASM_EH_FRAME_SECTION \ | |
822 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
|
823 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
|
824 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
|
825 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
|
826 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
|
827 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
|
828 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
|
829 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
|
830 FUNCTION_ARG_BOUNDARY MUST_USE_SJLJ_EXCEPTIONS US_SOFTWARE_GOFAST \ |
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
|
831 USING_SVR4_H SVR4_ASM_SPEC |
0 | 832 |
833 /* Hooks that are no longer used. */ | |
834 #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE \ | |
835 LANG_HOOKS_MARK_TREE LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES \ | |
836 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS \ | |
837 LANG_HOOKS_PUSHLEVEL LANG_HOOKS_SET_BLOCK \ | |
838 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
|
839 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
|
840 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
|
841 LANG_HOOKS_MISSING_ARGUMENT LANG_HOOKS_HASH_TYPES \ |
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
|
842 TARGET_HANDLE_OFAST TARGET_OPTION_OPTIMIZATION |
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
|
843 |
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
|
844 /* 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
|
845 #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
|
846 LIBGCC2_FLOAT_WORDS_BIG_ENDIAN |
0 | 847 |
848 /* 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
|
849 #pragma GCC poison USE_MAPPED_LOCATION GET_ENVIRONMENT |
0 | 850 |
851 /* Libiberty macros that are no longer used in GCC. */ | |
852 #undef ANSI_PROTOTYPES | |
853 #undef PTR_CONST | |
854 #undef LONG_DOUBLE | |
855 #undef VPARAMS | |
856 #undef VA_OPEN | |
857 #undef VA_FIXEDARG | |
858 #undef VA_CLOSE | |
859 #undef VA_START | |
860 #pragma GCC poison ANSI_PROTOTYPES PTR_CONST LONG_DOUBLE VPARAMS VA_OPEN \ | |
861 VA_FIXEDARG VA_CLOSE VA_START | |
862 #endif /* IN_GCC */ | |
863 | |
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
|
864 /* 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
|
865 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
|
866 #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
|
867 #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
|
868 #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
|
869 |
0 | 870 /* Note: not all uses of the `index' token (e.g. variable names and |
871 structure members) have been eliminated. */ | |
872 #undef bcopy | |
873 #undef bzero | |
874 #undef bcmp | |
875 #undef rindex | |
876 #pragma GCC poison bcopy bzero bcmp rindex | |
877 | |
878 #endif /* GCC >= 3.0 */ | |
879 | |
880 /* This macro allows casting away const-ness to pass -Wcast-qual | |
881 warnings. DO NOT USE THIS UNLESS YOU REALLY HAVE TO! It should | |
882 only be used in certain specific cases. One valid case is where | |
883 the C standard definitions or prototypes force you to. E.g. if you | |
884 need to free a const object, or if you pass a const string to | |
885 execv, et al. Another valid use would be in an allocation function | |
886 that creates const objects that need to be initialized. In some | |
887 cases we have non-const functions that return the argument | |
888 (e.g. next_nonnote_insn). Rather than create const shadow | |
889 functions, we can cast away const-ness in calling these interfaces | |
890 if we're careful to verify that the called function does indeed not | |
891 modify its argument and the return value is only used in a const | |
892 context. (This can be somewhat dangerous as these assumptions can | |
893 change after the fact). Beyond these uses, most other cases of | |
894 using this macro should be viewed with extreme caution. */ | |
895 | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
896 #ifdef __cplusplus |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
897 #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
|
898 #else |
0 | 899 #if defined(__GNUC__) && GCC_VERSION > 4000 |
900 /* GCC 4.0.x has a bug where it may ICE on this expression, | |
901 so does GCC 3.4.x (PR17436). */ | |
902 #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
|
903 #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
|
904 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
|
905 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
|
906 { |
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
|
907 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
|
908 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
|
909 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
|
910 } 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
|
911 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
|
912 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
|
913 } |
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
|
914 |
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
|
915 #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
|
916 ((TOTYPE) helper_const_non_const_cast ((const char *) (FROMTYPE) (X))) |
0 | 917 #else |
918 #define CONST_CAST2(TOTYPE,FROMTYPE,X) ((TOTYPE)(FROMTYPE)(X)) | |
919 #endif | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
920 #endif |
0 | 921 #define CONST_CAST(TYPE,X) CONST_CAST2(TYPE, const TYPE, (X)) |
922 #define CONST_CAST_TREE(X) CONST_CAST(union tree_node *, (X)) | |
923 #define CONST_CAST_RTX(X) CONST_CAST(struct rtx_def *, (X)) | |
924 #define CONST_CAST_BB(X) CONST_CAST(struct basic_block_def *, (X)) | |
925 #define CONST_CAST_GIMPLE(X) CONST_CAST(union gimple_statement_d *, (X)) | |
926 | |
927 /* Activate certain diagnostics as warnings (not errors via the | |
928 -Werror flag). */ | |
929 #if GCC_VERSION >= 4003 | |
930 /* If asserts are disabled, activate -Wuninitialized as a warning (not | |
931 an error/-Werror). */ | |
932 #ifndef ENABLE_ASSERT_CHECKING | |
933 #pragma GCC diagnostic warning "-Wuninitialized" | |
934 #endif | |
935 #endif | |
936 | |
937 #ifdef ENABLE_VALGRIND_CHECKING | |
938 # ifdef HAVE_VALGRIND_MEMCHECK_H | |
939 # include <valgrind/memcheck.h> | |
940 # elif defined HAVE_MEMCHECK_H | |
941 # include <memcheck.h> | |
942 # else | |
943 # include <valgrind.h> | |
944 # endif | |
945 /* Compatibility macros to let valgrind 3.1 work. */ | |
946 # ifndef VALGRIND_MAKE_MEM_NOACCESS | |
947 # define VALGRIND_MAKE_MEM_NOACCESS VALGRIND_MAKE_NOACCESS | |
948 # endif | |
949 # ifndef VALGRIND_MAKE_MEM_DEFINED | |
950 # define VALGRIND_MAKE_MEM_DEFINED VALGRIND_MAKE_READABLE | |
951 # endif | |
952 # ifndef VALGRIND_MAKE_MEM_UNDEFINED | |
953 # define VALGRIND_MAKE_MEM_UNDEFINED VALGRIND_MAKE_WRITABLE | |
954 # endif | |
955 #else | |
956 /* Avoid #ifdef:s when we can help it. */ | |
957 #define VALGRIND_DISCARD(x) | |
958 #define VALGRIND_MALLOCLIKE_BLOCK(w,x,y,z) | |
959 #define VALGRIND_FREELIKE_BLOCK(x,y) | |
960 #endif | |
961 | |
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
|
962 /* 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
|
963 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
|
964 #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
|
965 #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
|
966 #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
|
967 #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
|
968 #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
|
969 #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
|
970 #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
|
971 |
0 | 972 #endif /* ! GCC_SYSTEM_H */ |