c++: Reject UDLs in certain contexts [PR105300]
[official-gcc.git] / libcpp / location-example.txt
blobf6d98e2d228f66063d8ef30de8df620ad0aa5bdd
1 Consider compiling test.c, with this content:
2 VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
3 #include "test.h"
5 int
6 main (int argc, char **argv)
8   int a = PLUS (1,2);
9   int b = PLUS (3,4);
10   return 0;
12 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
14 ...where test.h has this content:
15 VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
16 extern int foo ();
18 #define PLUS(A, B) A + B
19 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
22 The undocumented -fdump-internal-locations option outputs this information
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
26 corresponding character of source code).
28 VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
29 RESERVED LOCATIONS
30   location_t interval: 0 <= loc < 2
32 ORDINARY MAP: 0
33   location_t interval: 32 <= loc < 64
34   file: test.c
35   starting at line: 1
36   column and range bits: 12
37   column bits: 7
38   range bits: 5
39   reason: 0 (LC_ENTER)
40   included from location: 0
41 test.c:  1|loc:   32|#include "test.h"
42                     |69269258258148147
43                     |46802468024680246
45 ORDINARY MAP: 1
46   location_t interval: 64 <= loc < 96
47   file: <built-in>
48   starting at line: 0
49   column and range bits: 0
50   column bits: 0
51   range bits: 0
52   reason: 2 (LC_RENAME)
53   included from location: 0
55 ORDINARY MAP: 2
56   location_t interval: 96 <= loc < 128
57   file: <command-line>
58   starting at line: 0
59   column and range bits: 0
60   column bits: 0
61   range bits: 0
62   reason: 2 (LC_RENAME)
63   included from location: 0
65 ORDINARY MAP: 3
66   location_t interval: 128 <= loc < 250240
67   file: /usr/include/stdc-predef.h
68   starting at line: 1
69   column and range bits: 12
70   column bits: 7
71   range bits: 5
72   reason: 0 (LC_ENTER)
73   included from location: 127 (in ordinary map 2)
74 (contents of /usr/include/stdc-predef.h snipped for brevity)
76 ORDINARY MAP: 4
77   location_t interval: 250240 <= loc < 250272
78   file: <command-line>
79   starting at line: 32
80   column and range bits: 12
81   column bits: 7
82   range bits: 5
83   reason: 1 (LC_LEAVE)
84   included from location: 0
86 ORDINARY MAP: 5
87   location_t interval: 250272 <= loc < 254368
88   file: test.c
89   starting at line: 1
90   column and range bits: 12
91   column bits: 7
92   range bits: 5
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
101 ORDINARY MAP: 6
102   location_t interval: 254368 <= loc < 266720
103   file: test.h
104   starting at line: 1
105   column and range bits: 12
106   column bits: 7
107   range bits: 5
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                      |
131 ORDINARY MAP: 7
132   location_t interval: 266720 <= loc < 299520
133   file: test.c
134   starting at line: 2
135   column and range bits: 12
136   column bits: 7
137   range bits: 5
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                      |
186 UNALLOCATED LOCATIONS
187   location_t interval: 299520 <= loc < 2147483632
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
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
226   macro_locations:
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
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
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
272 MAX_LOCATION_T
273   location_t interval: 2147483647 <= loc < 2147483648
275 AD-HOC LOCATIONS
276   location_t interval: 2147483648 <= loc < 4294967295
277 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^