Mercurial > hg > CbC > CbC_gcc
annotate gcc/cppdefault.c @ 144:8f4e72ab4e11
fix segmentation fault caused by nothing next cur_op to end
author | Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 23 Dec 2018 21:23:56 +0900 |
parents | 84e7813d76e9 |
children | 1830386684a0 |
rev | line source |
---|---|
0 | 1 /* CPP Library. |
131 | 2 Copyright (C) 1986-2018 Free Software Foundation, Inc. |
0 | 3 Contributed by Per Bothner, 1994-95. |
4 Based on CCCP program by Paul Rubin, June 1986 | |
5 Adapted to ANSI C, Richard Stallman, Jan 1987 | |
6 | |
7 This program is free software; you can redistribute it and/or modify it | |
8 under the terms of the GNU General Public License as published by the | |
9 Free Software Foundation; either version 3, or (at your option) any | |
10 later version. | |
11 | |
12 This program is distributed in the hope that it will be useful, | |
13 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 GNU General Public License for more details. | |
16 | |
17 You should have received a copy of the GNU General Public License | |
18 along with this program; see the file COPYING3. If not see | |
19 <http://www.gnu.org/licenses/>. */ | |
20 | |
21 #include "config.h" | |
22 #include "system.h" | |
23 #include "coretypes.h" | |
24 #include "tm.h" | |
25 #include "cppdefault.h" | |
26 | |
111 | 27 #ifndef NATIVE_SYSTEM_HEADER_COMPONENT |
28 #define NATIVE_SYSTEM_HEADER_COMPONENT 0 | |
0 | 29 #endif |
30 | |
31 #if defined (CROSS_DIRECTORY_STRUCTURE) && !defined (TARGET_SYSTEM_ROOT) | |
32 # undef LOCAL_INCLUDE_DIR | |
111 | 33 # undef NATIVE_SYSTEM_HEADER_DIR |
0 | 34 #else |
35 # undef CROSS_INCLUDE_DIR | |
36 #endif | |
37 | |
38 const struct default_include cpp_include_defaults[] | |
39 #ifdef INCLUDE_DEFAULTS | |
40 = INCLUDE_DEFAULTS; | |
41 #else | |
42 = { | |
43 #ifdef GPLUSPLUS_INCLUDE_DIR | |
44 /* Pick up GNU C++ generic include files. */ | |
111 | 45 { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, |
46 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, | |
0 | 47 #endif |
48 #ifdef GPLUSPLUS_TOOL_INCLUDE_DIR | |
49 /* Pick up GNU C++ target-dependent include files. */ | |
111 | 50 { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, |
51 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 }, | |
0 | 52 #endif |
53 #ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR | |
54 /* Pick up GNU C++ backward and deprecated include files. */ | |
111 | 55 { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, |
56 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 }, | |
0 | 57 #endif |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
58 #ifdef GCC_INCLUDE_DIR |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
59 /* This is the dir for gcc's private headers. */ |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
60 { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, |
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
61 #endif |
0 | 62 #ifdef LOCAL_INCLUDE_DIR |
63 /* /usr/local/include comes before the fixincluded header files. */ | |
111 | 64 { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 }, |
0 | 65 { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 }, |
66 #endif | |
67 #ifdef PREFIX_INCLUDE_DIR | |
68 { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0 }, | |
69 #endif | |
70 #ifdef FIXED_INCLUDE_DIR | |
71 /* This is the dir for fixincludes. */ | |
72 { FIXED_INCLUDE_DIR, "GCC", 0, 0, 0, | |
73 /* A multilib suffix needs adding if different multilibs use | |
74 different headers. */ | |
75 #ifdef SYSROOT_HEADERS_SUFFIX_SPEC | |
76 1 | |
77 #else | |
78 0 | |
79 #endif | |
80 }, | |
81 #endif | |
82 #ifdef CROSS_INCLUDE_DIR | |
83 /* One place the target system's headers might be. */ | |
84 { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, | |
85 #endif | |
86 #ifdef TOOL_INCLUDE_DIR | |
87 /* Another place the target system's headers might be. */ | |
88 { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 }, | |
89 #endif | |
111 | 90 #ifdef NATIVE_SYSTEM_HEADER_DIR |
0 | 91 /* /usr/include comes dead last. */ |
111 | 92 { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 }, |
93 { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 }, | |
0 | 94 #endif |
95 { 0, 0, 0, 0, 0, 0 } | |
96 }; | |
97 #endif /* no INCLUDE_DEFAULTS */ | |
98 | |
99 #ifdef GCC_INCLUDE_DIR | |
100 const char cpp_GCC_INCLUDE_DIR[] = GCC_INCLUDE_DIR; | |
101 const size_t cpp_GCC_INCLUDE_DIR_len = sizeof GCC_INCLUDE_DIR - 8; | |
102 #else | |
103 const char cpp_GCC_INCLUDE_DIR[] = ""; | |
104 const size_t cpp_GCC_INCLUDE_DIR_len = 0; | |
105 #endif | |
106 | |
107 /* The configured prefix. */ | |
108 const char cpp_PREFIX[] = PREFIX; | |
109 const size_t cpp_PREFIX_len = sizeof PREFIX - 1; | |
110 const char cpp_EXEC_PREFIX[] = STANDARD_EXEC_PREFIX; | |
111 | |
112 /* This value is set by cpp_relocated at runtime */ | |
113 const char *gcc_exec_prefix; | |
114 | |
115 /* Return true if the toolchain is relocated. */ | |
116 bool | |
117 cpp_relocated (void) | |
118 { | |
119 static int relocated = -1; | |
120 | |
121 /* A relocated toolchain ignores standard include directories. */ | |
122 if (relocated == -1) | |
123 { | |
124 /* Check if the toolchain was relocated? */ | |
67
f6334be47118
update gcc from gcc-4.6-20100522 to gcc-4.6-20110318
nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
125 gcc_exec_prefix = getenv ("GCC_EXEC_PREFIX"); |
0 | 126 if (gcc_exec_prefix) |
127 relocated = 1; | |
128 else | |
129 relocated = 0; | |
130 } | |
131 | |
132 return relocated; | |
133 } |