111
|
1 Consider compiling test.c, with this content:
|
|
2 VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
|
|
3 #include "test.h"
|
|
4
|
|
5 int
|
|
6 main (int argc, char **argv)
|
|
7 {
|
|
8 int a = PLUS (1,2);
|
|
9 int b = PLUS (3,4);
|
|
10 return 0;
|
|
11 }
|
|
12 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
13
|
|
14 ...where test.h has this content:
|
|
15 VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
|
|
16 extern int foo ();
|
|
17
|
|
18 #define PLUS(A, B) A + B
|
|
19 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
20
|
|
21
|
|
22 The undocumented -fdump-internal-locations option outputs this information
|
145
|
23 to stderr, showing what each location_t value means. Source code
|
|
24 lines are quoted, showing both per-line location_t values and
|
|
25 per-line&column location_t values (written vertically under the
|
111
|
26 corresponding character of source code).
|
|
27
|
|
28 VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
|
|
29 RESERVED LOCATIONS
|
145
|
30 location_t interval: 0 <= loc < 2
|
111
|
31
|
|
32 ORDINARY MAP: 0
|
145
|
33 location_t interval: 32 <= loc < 64
|
111
|
34 file: test.c
|
|
35 starting at line: 1
|
145
|
36 column and range bits: 12
|
|
37 column bits: 7
|
111
|
38 range bits: 5
|
145
|
39 reason: 0 (LC_ENTER)
|
|
40 included from location: 0
|
111
|
41 test.c: 1|loc: 32|#include "test.h"
|
|
42 |69269258258148147
|
|
43 |46802468024680246
|
|
44
|
|
45 ORDINARY MAP: 1
|
145
|
46 location_t interval: 64 <= loc < 96
|
111
|
47 file: <built-in>
|
|
48 starting at line: 0
|
145
|
49 column and range bits: 0
|
111
|
50 column bits: 0
|
|
51 range bits: 0
|
145
|
52 reason: 2 (LC_RENAME)
|
|
53 included from location: 0
|
111
|
54
|
|
55 ORDINARY MAP: 2
|
145
|
56 location_t interval: 96 <= loc < 128
|
111
|
57 file: <command-line>
|
|
58 starting at line: 0
|
145
|
59 column and range bits: 0
|
111
|
60 column bits: 0
|
|
61 range bits: 0
|
145
|
62 reason: 2 (LC_RENAME)
|
|
63 included from location: 0
|
111
|
64
|
|
65 ORDINARY MAP: 3
|
145
|
66 location_t interval: 128 <= loc < 250240
|
111
|
67 file: /usr/include/stdc-predef.h
|
|
68 starting at line: 1
|
145
|
69 column and range bits: 12
|
|
70 column bits: 7
|
111
|
71 range bits: 5
|
145
|
72 reason: 0 (LC_ENTER)
|
|
73 included from location: 127 (in ordinary map 2)
|
111
|
74 (contents of /usr/include/stdc-predef.h snipped for brevity)
|
|
75
|
|
76 ORDINARY MAP: 4
|
145
|
77 location_t interval: 250240 <= loc < 250272
|
111
|
78 file: <command-line>
|
|
79 starting at line: 32
|
145
|
80 column and range bits: 12
|
|
81 column bits: 7
|
111
|
82 range bits: 5
|
145
|
83 reason: 1 (LC_LEAVE)
|
|
84 included from location: 0
|
111
|
85
|
|
86 ORDINARY MAP: 5
|
145
|
87 location_t interval: 250272 <= loc < 254368
|
111
|
88 file: test.c
|
|
89 starting at line: 1
|
145
|
90 column and range bits: 12
|
|
91 column bits: 7
|
111
|
92 range bits: 5
|
145
|
93 reason: 2 (LC_RENAME)
|
|
94 included from location: 0
|
|
95 test.c: 1|loc:250272|#include "test.h"
|
|
96 |00000000000000000
|
|
97 |33344445556667778
|
|
98 |03603692692582581
|
|
99 |46802468024680246
|
111
|
100
|
|
101 ORDINARY MAP: 6
|
145
|
102 location_t interval: 254368 <= loc < 266720
|
111
|
103 file: test.h
|
|
104 starting at line: 1
|
145
|
105 column and range bits: 12
|
|
106 column bits: 7
|
111
|
107 range bits: 5
|
145
|
108 reason: 0 (LC_ENTER)
|
|
109 included from location: 250272 (in ordinary map 5)
|
|
110 test.h: 1|loc:254368|extern int foo ();
|
|
111 |444444444444444444
|
|
112 |444455566677788899
|
|
113 |036926925825814814
|
|
114 |024680246802468024
|
|
115 test.h: 2|loc:258464|
|
|
116 |
|
|
117 |
|
|
118 |
|
|
119 |
|
|
120 test.h: 3|loc:262560|#define PLUS(A, B) A + B
|
|
121 |222222222222233333333333
|
|
122 |566677788899900011122223
|
|
123 |925825814814704703603692
|
|
124 |246802468024680246802468
|
|
125 test.h: 4|loc:266656|
|
|
126 |
|
|
127 |
|
|
128 |
|
|
129 |
|
111
|
130
|
|
131 ORDINARY MAP: 7
|
145
|
132 location_t interval: 266720 <= loc < 299520
|
111
|
133 file: test.c
|
|
134 starting at line: 2
|
145
|
135 column and range bits: 12
|
|
136 column bits: 7
|
111
|
137 range bits: 5
|
145
|
138 reason: 1 (LC_LEAVE)
|
|
139 included from location: 0
|
|
140 test.c: 2|loc:266720|
|
|
141 |
|
|
142 |
|
|
143 |
|
|
144 |
|
|
145 test.c: 3|loc:270816|int
|
|
146 |000
|
|
147 |889
|
|
148 |481
|
|
149 |802
|
|
150 test.c: 4|loc:274912|main (int argc, char **argv)
|
|
151 |4455555555555555555555555555
|
|
152 |9900011122223334445556667778
|
|
153 |4704703603692692582581481470
|
|
154 |4680246802468024680246802468
|
|
155 test.c: 5|loc:279008|{
|
|
156 |9
|
|
157 |0
|
|
158 |4
|
|
159 |0
|
|
160 test.c: 6|loc:283104| int a = PLUS (1,2);
|
|
161 |333333333333333333333
|
|
162 |112222333444555666777
|
|
163 |360369269258258148147
|
|
164 |680246802468024680246
|
|
165 test.c: 7|loc:287200| int b = PLUS (3,4);
|
|
166 |777777777777777777777
|
|
167 |222333444555666777888
|
|
168 |369269258258148147047
|
|
169 |246802468024680246802
|
|
170 test.c: 8|loc:291296| return 0;
|
|
171 |11111111111
|
|
172 |33344455566
|
|
173 |26925825814
|
|
174 |80246802468
|
|
175 test.c: 9|loc:295392|}
|
|
176 |5
|
|
177 |4
|
|
178 |2
|
|
179 |4
|
|
180 test.c: 10|loc:299488|
|
|
181 |
|
|
182 |
|
|
183 |
|
|
184 |
|
111
|
185
|
|
186 UNALLOCATED LOCATIONS
|
145
|
187 location_t interval: 299520 <= loc < 2147483632
|
111
|
188
|
145
|
189 MACRO 3: PLUS (7 tokens)
|
|
190 location_t interval: 2147483632 <= loc < 2147483639
|
|
191 test.c:7:11: note: expansion point is location 287555
|
|
192 7 | int b = PLUS (3,4);
|
|
193 | ^~~~
|
|
194 map->start_location: 2147483632
|
|
195 macro_locations:
|
|
196 0: 287744, 263200
|
|
197 test.c:7:17: note: token 0 has x-location == 287744
|
|
198 7 | int b = PLUS (3,4);
|
|
199 | ^
|
|
200 test.c:7:17: note: token 0 has y-location == 263200
|
|
201 1: 263264, 263264
|
|
202 In file included from test.c:1:
|
|
203 test.h:3:22: note: token 1 has x-location == y-location == 263264
|
|
204 3 | #define PLUS(A, B) A + B
|
|
205 | ^
|
|
206 2: 287808, 263328
|
|
207 test.c:7:19: note: token 2 has x-location == 287808
|
|
208 7 | int b = PLUS (3,4);
|
|
209 | ^
|
|
210 test.c:7:19: note: token 2 has y-location == 263328
|
|
211 3: 0, 0
|
|
212 cc1: note: token 3 has x-location == y-location == 0
|
|
213 4: 0, 0
|
|
214 cc1: note: token 4 has x-location == y-location == 0
|
|
215 5: 0, 0
|
|
216 cc1: note: token 5 has x-location == y-location == 0
|
|
217 6: 0, 0
|
|
218 cc1: note: token 6 has x-location == y-location == 0
|
111
|
219
|
145
|
220 MACRO 2: PLUS (7 tokens)
|
|
221 location_t interval: 2147483639 <= loc < 2147483646
|
|
222 test.c:6:11: note: expansion point is location 283459
|
|
223 6 | int a = PLUS (1,2);
|
|
224 | ^~~~
|
|
225 map->start_location: 2147483639
|
111
|
226 macro_locations:
|
145
|
227 0: 283648, 263200
|
|
228 test.c:6:17: note: token 0 has x-location == 283648
|
|
229 6 | int a = PLUS (1,2);
|
|
230 | ^
|
|
231 test.c:6:17: note: token 0 has y-location == 263200
|
|
232 1: 263264, 263264
|
|
233 In file included from test.c:1:
|
|
234 test.h:3:22: note: token 1 has x-location == y-location == 263264
|
|
235 3 | #define PLUS(A, B) A + B
|
|
236 | ^
|
|
237 2: 283712, 263328
|
|
238 test.c:6:19: note: token 2 has x-location == 283712
|
|
239 6 | int a = PLUS (1,2);
|
|
240 | ^
|
|
241 test.c:6:19: note: token 2 has y-location == 263328
|
|
242 3: 0, 0
|
|
243 cc1: note: token 3 has x-location == y-location == 0
|
|
244 4: 0, 0
|
|
245 cc1: note: token 4 has x-location == y-location == 0
|
|
246 5: 0, 0
|
|
247 cc1: note: token 5 has x-location == y-location == 0
|
|
248 6: 0, 0
|
|
249 cc1: note: token 6 has x-location == y-location == 0
|
111
|
250
|
145
|
251 MACRO 1: __GCC_IEC_559_COMPLEX (1 tokens)
|
|
252 location_t interval: 2147483646 <= loc < 2147483647
|
|
253 In file included from <command-line>:31:
|
|
254 /usr/include/stdc-predef.h:45:6: note: expansion point is location 180564
|
|
255 45 | # if __GCC_IEC_559_COMPLEX > 0
|
|
256 | ^~~~~~~~~~~~~~~~~~~~~
|
|
257 map->start_location: 2147483646
|
|
258 macro_locations:
|
|
259 0: 1, 1
|
|
260 <built-in>: note: token 0 has x-location == y-location == 1
|
111
|
261
|
145
|
262 MACRO 0: __GCC_IEC_559 (1 tokens)
|
|
263 location_t interval: 2147483647 <= loc < 2147483648
|
|
264 /usr/include/stdc-predef.h:37:6: note: expansion point is location 147788
|
|
265 37 | # if __GCC_IEC_559 > 0
|
|
266 | ^~~~~~~~~~~~~
|
|
267 map->start_location: 2147483647
|
|
268 macro_locations:
|
|
269 0: 1, 1
|
|
270 <built-in>: note: token 0 has x-location == y-location == 1
|
111
|
271
|
145
|
272 MAX_LOCATION_T
|
|
273 location_t interval: 2147483647 <= loc < 2147483648
|
111
|
274
|
|
275 AD-HOC LOCATIONS
|
145
|
276 location_t interval: 2147483648 <= loc < 4294967295
|
111
|
277 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|