annotate libcpp/location-example.txt @ 120:f93fa5091070

fix conv1.c
author mir3636
date Thu, 08 Mar 2018 14:53:42 +0900
parents 04ced10e8804
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 Consider compiling test.c, with this content:
kono
parents:
diff changeset
2 VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
kono
parents:
diff changeset
3 #include "test.h"
kono
parents:
diff changeset
4
kono
parents:
diff changeset
5 int
kono
parents:
diff changeset
6 main (int argc, char **argv)
kono
parents:
diff changeset
7 {
kono
parents:
diff changeset
8 int a = PLUS (1,2);
kono
parents:
diff changeset
9 int b = PLUS (3,4);
kono
parents:
diff changeset
10 return 0;
kono
parents:
diff changeset
11 }
kono
parents:
diff changeset
12 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
kono
parents:
diff changeset
13
kono
parents:
diff changeset
14 ...where test.h has this content:
kono
parents:
diff changeset
15 VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
kono
parents:
diff changeset
16 extern int foo ();
kono
parents:
diff changeset
17
kono
parents:
diff changeset
18 #define PLUS(A, B) A + B
kono
parents:
diff changeset
19 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21
kono
parents:
diff changeset
22 The undocumented -fdump-internal-locations option outputs this information
kono
parents:
diff changeset
23 to stderr, showing what each source_location value means. Source code
kono
parents:
diff changeset
24 lines are quoted, showing both per-line source_location values and
kono
parents:
diff changeset
25 per-line&column source_location values (written vertically under the
kono
parents:
diff changeset
26 corresponding character of source code).
kono
parents:
diff changeset
27
kono
parents:
diff changeset
28 VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
kono
parents:
diff changeset
29 RESERVED LOCATIONS
kono
parents:
diff changeset
30 source_location interval: 0 <= loc < 2
kono
parents:
diff changeset
31
kono
parents:
diff changeset
32 ORDINARY MAP: 0
kono
parents:
diff changeset
33 source_location interval: 32 <= loc < 64
kono
parents:
diff changeset
34 file: test.c
kono
parents:
diff changeset
35 starting at line: 1
kono
parents:
diff changeset
36 column bits: 12
kono
parents:
diff changeset
37 range bits: 5
kono
parents:
diff changeset
38 test.c: 1|loc: 32|#include "test.h"
kono
parents:
diff changeset
39 |69269258258148147
kono
parents:
diff changeset
40 |46802468024680246
kono
parents:
diff changeset
41
kono
parents:
diff changeset
42 ORDINARY MAP: 1
kono
parents:
diff changeset
43 source_location interval: 64 <= loc < 96
kono
parents:
diff changeset
44 file: <built-in>
kono
parents:
diff changeset
45 starting at line: 0
kono
parents:
diff changeset
46 column bits: 0
kono
parents:
diff changeset
47 range bits: 0
kono
parents:
diff changeset
48
kono
parents:
diff changeset
49 ORDINARY MAP: 2
kono
parents:
diff changeset
50 source_location interval: 96 <= loc < 128
kono
parents:
diff changeset
51 file: <command-line>
kono
parents:
diff changeset
52 starting at line: 0
kono
parents:
diff changeset
53 column bits: 0
kono
parents:
diff changeset
54 range bits: 0
kono
parents:
diff changeset
55
kono
parents:
diff changeset
56 ORDINARY MAP: 3
kono
parents:
diff changeset
57 source_location interval: 128 <= loc < 160128
kono
parents:
diff changeset
58 file: /usr/include/stdc-predef.h
kono
parents:
diff changeset
59 starting at line: 1
kono
parents:
diff changeset
60 column bits: 12
kono
parents:
diff changeset
61 range bits: 5
kono
parents:
diff changeset
62 (contents of /usr/include/stdc-predef.h snipped for brevity)
kono
parents:
diff changeset
63
kono
parents:
diff changeset
64 ORDINARY MAP: 4
kono
parents:
diff changeset
65 source_location interval: 160128 <= loc < 160160
kono
parents:
diff changeset
66 file: <command-line>
kono
parents:
diff changeset
67 starting at line: 32
kono
parents:
diff changeset
68 column bits: 12
kono
parents:
diff changeset
69 range bits: 5
kono
parents:
diff changeset
70
kono
parents:
diff changeset
71 ORDINARY MAP: 5
kono
parents:
diff changeset
72 source_location interval: 160160 <= loc < 164256
kono
parents:
diff changeset
73 file: test.c
kono
parents:
diff changeset
74 starting at line: 1
kono
parents:
diff changeset
75 column bits: 12
kono
parents:
diff changeset
76 range bits: 5
kono
parents:
diff changeset
77 test.c: 1|loc:160160|#include "test.h"
kono
parents:
diff changeset
78 |00000000000000000
kono
parents:
diff changeset
79 |12223334445556667
kono
parents:
diff changeset
80 |92582581481470470
kono
parents:
diff changeset
81 |24680246802468024
kono
parents:
diff changeset
82
kono
parents:
diff changeset
83 ORDINARY MAP: 6
kono
parents:
diff changeset
84 source_location interval: 164256 <= loc < 173280
kono
parents:
diff changeset
85 file: test.h
kono
parents:
diff changeset
86 starting at line: 1
kono
parents:
diff changeset
87 column bits: 12
kono
parents:
diff changeset
88 range bits: 5
kono
parents:
diff changeset
89 test.h: 1|loc:164256|extern int foo ();
kono
parents:
diff changeset
90 |444444444444444444
kono
parents:
diff changeset
91 |233344455566677788
kono
parents:
diff changeset
92 |825814814704703603
kono
parents:
diff changeset
93 |802468024680246802
kono
parents:
diff changeset
94 test.h: 2|loc:168352|
kono
parents:
diff changeset
95 |
kono
parents:
diff changeset
96 |
kono
parents:
diff changeset
97 |
kono
parents:
diff changeset
98 |
kono
parents:
diff changeset
99 test.h: 3|loc:172448|#define PLUS(A, B) A + B
kono
parents:
diff changeset
100 |222222222222222223333333
kono
parents:
diff changeset
101 |455566677788889990001112
kono
parents:
diff changeset
102 |814704703603692692582581
kono
parents:
diff changeset
103 |024680246802468024680246
kono
parents:
diff changeset
104
kono
parents:
diff changeset
105 ORDINARY MAP: 7
kono
parents:
diff changeset
106 source_location interval: 173280 <= loc < 202016
kono
parents:
diff changeset
107 file: test.c
kono
parents:
diff changeset
108 starting at line: 2
kono
parents:
diff changeset
109 column bits: 12
kono
parents:
diff changeset
110 range bits: 5
kono
parents:
diff changeset
111 test.c: 2|loc:173280|
kono
parents:
diff changeset
112 |
kono
parents:
diff changeset
113 |
kono
parents:
diff changeset
114 |
kono
parents:
diff changeset
115 |
kono
parents:
diff changeset
116 test.c: 3|loc:177376|int
kono
parents:
diff changeset
117 |777
kono
parents:
diff changeset
118 |444
kono
parents:
diff changeset
119 |047
kono
parents:
diff changeset
120 |802
kono
parents:
diff changeset
121 test.c: 4|loc:181472|main (int argc, char **argv)
kono
parents:
diff changeset
122 |1111111111111111222222222222
kono
parents:
diff changeset
123 |5556666777888999000111222333
kono
parents:
diff changeset
124 |0360369269258258148147047036
kono
parents:
diff changeset
125 |4680246802468024680246802468
kono
parents:
diff changeset
126 test.c: 5|loc:185568|{
kono
parents:
diff changeset
127 |5
kono
parents:
diff changeset
128 |6
kono
parents:
diff changeset
129 |0
kono
parents:
diff changeset
130 |0
kono
parents:
diff changeset
131 test.c: 6|loc:189664| int a = PLUS (1,2);
kono
parents:
diff changeset
132 |999999999900000000000
kono
parents:
diff changeset
133 |677788899900011122233
kono
parents:
diff changeset
134 |926925825814814704703
kono
parents:
diff changeset
135 |680246802468024680246
kono
parents:
diff changeset
136 test.c: 7|loc:193760| int b = PLUS (3,4);
kono
parents:
diff changeset
137 |333333344444444444444
kono
parents:
diff changeset
138 |788899900011122233344
kono
parents:
diff changeset
139 |925825814814704703603
kono
parents:
diff changeset
140 |246802468024680246802
kono
parents:
diff changeset
141 test.c: 8|loc:197856| return 0;
kono
parents:
diff changeset
142 |77778888888
kono
parents:
diff changeset
143 |89990001112
kono
parents:
diff changeset
144 |82581481470
kono
parents:
diff changeset
145 |80246802468
kono
parents:
diff changeset
146 test.c: 9|loc:201952|}
kono
parents:
diff changeset
147 |1
kono
parents:
diff changeset
148 |9
kono
parents:
diff changeset
149 |8
kono
parents:
diff changeset
150 |4
kono
parents:
diff changeset
151
kono
parents:
diff changeset
152 UNALLOCATED LOCATIONS
kono
parents:
diff changeset
153 source_location interval: 202016 <= loc < 2147483633
kono
parents:
diff changeset
154
kono
parents:
diff changeset
155 MACRO 1: PLUS (7 tokens)
kono
parents:
diff changeset
156 source_location interval: 2147483633 <= loc < 2147483640
kono
parents:
diff changeset
157 test.c:7:11: note: expansion point is location 194115
kono
parents:
diff changeset
158 int b = PLUS (3,4);
kono
parents:
diff changeset
159 ^~~~
kono
parents:
diff changeset
160
kono
parents:
diff changeset
161 map->start_location: 2147483633
kono
parents:
diff changeset
162 macro_locations:
kono
parents:
diff changeset
163 0: 194304, 173088
kono
parents:
diff changeset
164 test.c:7:17: note: token 0 has x-location == 194304
kono
parents:
diff changeset
165 int b = PLUS (3,4);
kono
parents:
diff changeset
166 ^
kono
parents:
diff changeset
167
kono
parents:
diff changeset
168 test.c:7:17: note: token 0 has y-location == 173088
kono
parents:
diff changeset
169 1: 173152, 173152
kono
parents:
diff changeset
170 In file included from test.c:1:0:
kono
parents:
diff changeset
171 test.h:3:22: note: token 1 has x-location == y-location == 173152
kono
parents:
diff changeset
172 #define PLUS(A, B) A + B
kono
parents:
diff changeset
173 ^
kono
parents:
diff changeset
174
kono
parents:
diff changeset
175 2: 194368, 173216
kono
parents:
diff changeset
176 test.c:7:19: note: token 2 has x-location == 194368
kono
parents:
diff changeset
177 int b = PLUS (3,4);
kono
parents:
diff changeset
178 ^
kono
parents:
diff changeset
179
kono
parents:
diff changeset
180 test.c:7:19: note: token 2 has y-location == 173216
kono
parents:
diff changeset
181 3: 0, 2947526575
kono
parents:
diff changeset
182 cc1: note: token 3 has x-location == 0
kono
parents:
diff changeset
183 cc1: note: token 3 has y-location == 2947526575
kono
parents:
diff changeset
184 4: 2947526575, 2947526575
kono
parents:
diff changeset
185 x-location == y-location == 2947526575 encodes token # 800042942
kono
parents:
diff changeset
186 5: 2947526575, 2947526575
kono
parents:
diff changeset
187 x-location == y-location == 2947526575 encodes token # 800042942
kono
parents:
diff changeset
188 6: 2947526575, 2947526575
kono
parents:
diff changeset
189 x-location == y-location == 2947526575 encodes token # 800042942
kono
parents:
diff changeset
190
kono
parents:
diff changeset
191 MACRO 0: PLUS (7 tokens)
kono
parents:
diff changeset
192 source_location interval: 2147483640 <= loc < 2147483647
kono
parents:
diff changeset
193 test.c:6:11: note: expansion point is location 190019
kono
parents:
diff changeset
194 int a = PLUS (1,2);
kono
parents:
diff changeset
195 ^~~~
kono
parents:
diff changeset
196
kono
parents:
diff changeset
197 map->start_location: 2147483640
kono
parents:
diff changeset
198 macro_locations:
kono
parents:
diff changeset
199 0: 190208, 173088
kono
parents:
diff changeset
200 test.c:6:17: note: token 0 has x-location == 190208
kono
parents:
diff changeset
201 int a = PLUS (1,2);
kono
parents:
diff changeset
202 ^
kono
parents:
diff changeset
203
kono
parents:
diff changeset
204 test.c:6:17: note: token 0 has y-location == 173088
kono
parents:
diff changeset
205 1: 173152, 173152
kono
parents:
diff changeset
206 In file included from test.c:1:0:
kono
parents:
diff changeset
207 test.h:3:22: note: token 1 has x-location == y-location == 173152
kono
parents:
diff changeset
208 #define PLUS(A, B) A + B
kono
parents:
diff changeset
209 ^
kono
parents:
diff changeset
210
kono
parents:
diff changeset
211 2: 190272, 173216
kono
parents:
diff changeset
212 test.c:6:19: note: token 2 has x-location == 190272
kono
parents:
diff changeset
213 int a = PLUS (1,2);
kono
parents:
diff changeset
214 ^
kono
parents:
diff changeset
215
kono
parents:
diff changeset
216 test.c:6:19: note: token 2 has y-location == 173216
kono
parents:
diff changeset
217 3: 0, 2947526575
kono
parents:
diff changeset
218 cc1: note: token 3 has x-location == 0
kono
parents:
diff changeset
219 cc1: note: token 3 has y-location == 2947526575
kono
parents:
diff changeset
220 4: 2947526575, 2947526575
kono
parents:
diff changeset
221 x-location == y-location == 2947526575 encodes token # 800042935
kono
parents:
diff changeset
222 5: 2947526575, 2947526575
kono
parents:
diff changeset
223 x-location == y-location == 2947526575 encodes token # 800042935
kono
parents:
diff changeset
224 6: 2947526575, 2947526575
kono
parents:
diff changeset
225 x-location == y-location == 2947526575 encodes token # 800042935
kono
parents:
diff changeset
226
kono
parents:
diff changeset
227 MAX_SOURCE_LOCATION
kono
parents:
diff changeset
228 source_location interval: 2147483647 <= loc < 2147483648
kono
parents:
diff changeset
229
kono
parents:
diff changeset
230 AD-HOC LOCATIONS
kono
parents:
diff changeset
231 source_location interval: 2147483648 <= loc < 4294967295
kono
parents:
diff changeset
232 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^