| Consider compiling test.c, with this content: | |
| VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV | |
| #include "test.h" | |
| int | |
| main (int argc, char **argv) | |
| { | |
| int a = PLUS (1,2); | |
| int b = PLUS (3,4); | |
| return 0; | |
| } | |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
| ...where test.h has this content: | |
| VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV | |
| extern int foo (); | |
| #define PLUS(A, B) A + B | |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
| The undocumented -fdump-internal-locations option outputs this information | |
| to stderr, showing what each location_t value means. Source code | |
| lines are quoted, showing both per-line location_t values and | |
| per-line&column location_t values (written vertically under the | |
| corresponding character of source code). | |
| VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV | |
| RESERVED LOCATIONS | |
| location_t interval: 0 <= loc < 2 | |
| ORDINARY MAP: 0 | |
| location_t interval: 32 <= loc < 64 | |
| file: test.c | |
| starting at line: 1 | |
| column and range bits: 12 | |
| column bits: 7 | |
| range bits: 5 | |
| reason: 0 (LC_ENTER) | |
| included from location: 0 | |
| test.c: 1|loc: 32|#include "test.h" | |
| |69269258258148147 | |
| |46802468024680246 | |
| ORDINARY MAP: 1 | |
| location_t interval: 64 <= loc < 96 | |
| file: <built-in> | |
| starting at line: 0 | |
| column and range bits: 0 | |
| column bits: 0 | |
| range bits: 0 | |
| reason: 2 (LC_RENAME) | |
| included from location: 0 | |
| ORDINARY MAP: 2 | |
| location_t interval: 96 <= loc < 128 | |
| file: <command-line> | |
| starting at line: 0 | |
| column and range bits: 0 | |
| column bits: 0 | |
| range bits: 0 | |
| reason: 2 (LC_RENAME) | |
| included from location: 0 | |
| ORDINARY MAP: 3 | |
| location_t interval: 128 <= loc < 250240 | |
| file: /usr/include/stdc-predef.h | |
| starting at line: 1 | |
| column and range bits: 12 | |
| column bits: 7 | |
| range bits: 5 | |
| reason: 0 (LC_ENTER) | |
| included from location: 127 (in ordinary map 2) | |
| (contents of /usr/include/stdc-predef.h snipped for brevity) | |
| ORDINARY MAP: 4 | |
| location_t interval: 250240 <= loc < 250272 | |
| file: <command-line> | |
| starting at line: 32 | |
| column and range bits: 12 | |
| column bits: 7 | |
| range bits: 5 | |
| reason: 1 (LC_LEAVE) | |
| included from location: 0 | |
| ORDINARY MAP: 5 | |
| location_t interval: 250272 <= loc < 254368 | |
| file: test.c | |
| starting at line: 1 | |
| column and range bits: 12 | |
| column bits: 7 | |
| range bits: 5 | |
| reason: 2 (LC_RENAME) | |
| included from location: 0 | |
| test.c: 1|loc:250272|#include "test.h" | |
| |00000000000000000 | |
| |33344445556667778 | |
| |03603692692582581 | |
| |46802468024680246 | |
| ORDINARY MAP: 6 | |
| location_t interval: 254368 <= loc < 266720 | |
| file: test.h | |
| starting at line: 1 | |
| column and range bits: 12 | |
| column bits: 7 | |
| range bits: 5 | |
| reason: 0 (LC_ENTER) | |
| included from location: 250272 (in ordinary map 5) | |
| test.h: 1|loc:254368|extern int foo (); | |
| |444444444444444444 | |
| |444455566677788899 | |
| |036926925825814814 | |
| |024680246802468024 | |
| test.h: 2|loc:258464| | |
| | | |
| | | |
| | | |
| | | |
| test.h: 3|loc:262560|#define PLUS(A, B) A + B | |
| |222222222222233333333333 | |
| |566677788899900011122223 | |
| |925825814814704703603692 | |
| |246802468024680246802468 | |
| test.h: 4|loc:266656| | |
| | | |
| | | |
| | | |
| | | |
| ORDINARY MAP: 7 | |
| location_t interval: 266720 <= loc < 299520 | |
| file: test.c | |
| starting at line: 2 | |
| column and range bits: 12 | |
| column bits: 7 | |
| range bits: 5 | |
| reason: 1 (LC_LEAVE) | |
| included from location: 0 | |
| test.c: 2|loc:266720| | |
| | | |
| | | |
| | | |
| | | |
| test.c: 3|loc:270816|int | |
| |000 | |
| |889 | |
| |481 | |
| |802 | |
| test.c: 4|loc:274912|main (int argc, char **argv) | |
| |4455555555555555555555555555 | |
| |9900011122223334445556667778 | |
| |4704703603692692582581481470 | |
| |4680246802468024680246802468 | |
| test.c: 5|loc:279008|{ | |
| |9 | |
| |0 | |
| |4 | |
| |0 | |
| test.c: 6|loc:283104| int a = PLUS (1,2); | |
| |333333333333333333333 | |
| |112222333444555666777 | |
| |360369269258258148147 | |
| |680246802468024680246 | |
| test.c: 7|loc:287200| int b = PLUS (3,4); | |
| |777777777777777777777 | |
| |222333444555666777888 | |
| |369269258258148147047 | |
| |246802468024680246802 | |
| test.c: 8|loc:291296| return 0; | |
| |11111111111 | |
| |33344455566 | |
| |26925825814 | |
| |80246802468 | |
| test.c: 9|loc:295392|} | |
| |5 | |
| |4 | |
| |2 | |
| |4 | |
| test.c: 10|loc:299488| | |
| | | |
| | | |
| | | |
| | | |
| UNALLOCATED LOCATIONS | |
| location_t interval: 299520 <= loc < 2147483632 | |
| MACRO 3: PLUS (7 tokens) | |
| location_t interval: 2147483632 <= loc < 2147483639 | |
| test.c:7:11: note: expansion point is location 287555 | |
| 7 | int b = PLUS (3,4); | |
| | ^~~~ | |
| map->start_location: 2147483632 | |
| macro_locations: | |
| 0: 287744, 263200 | |
| test.c:7:17: note: token 0 has x-location == 287744 | |
| 7 | int b = PLUS (3,4); | |
| | ^ | |
| test.c:7:17: note: token 0 has y-location == 263200 | |
| 1: 263264, 263264 | |
| In file included from test.c:1: | |
| test.h:3:22: note: token 1 has x-location == y-location == 263264 | |
| 3 | #define PLUS(A, B) A + B | |
| | ^ | |
| 2: 287808, 263328 | |
| test.c:7:19: note: token 2 has x-location == 287808 | |
| 7 | int b = PLUS (3,4); | |
| | ^ | |
| test.c:7:19: note: token 2 has y-location == 263328 | |
| 3: 0, 0 | |
| cc1: note: token 3 has x-location == y-location == 0 | |
| 4: 0, 0 | |
| cc1: note: token 4 has x-location == y-location == 0 | |
| 5: 0, 0 | |
| cc1: note: token 5 has x-location == y-location == 0 | |
| 6: 0, 0 | |
| cc1: note: token 6 has x-location == y-location == 0 | |
| MACRO 2: PLUS (7 tokens) | |
| location_t interval: 2147483639 <= loc < 2147483646 | |
| test.c:6:11: note: expansion point is location 283459 | |
| 6 | int a = PLUS (1,2); | |
| | ^~~~ | |
| map->start_location: 2147483639 | |
| macro_locations: | |
| 0: 283648, 263200 | |
| test.c:6:17: note: token 0 has x-location == 283648 | |
| 6 | int a = PLUS (1,2); | |
| | ^ | |
| test.c:6:17: note: token 0 has y-location == 263200 | |
| 1: 263264, 263264 | |
| In file included from test.c:1: | |
| test.h:3:22: note: token 1 has x-location == y-location == 263264 | |
| 3 | #define PLUS(A, B) A + B | |
| | ^ | |
| 2: 283712, 263328 | |
| test.c:6:19: note: token 2 has x-location == 283712 | |
| 6 | int a = PLUS (1,2); | |
| | ^ | |
| test.c:6:19: note: token 2 has y-location == 263328 | |
| 3: 0, 0 | |
| cc1: note: token 3 has x-location == y-location == 0 | |
| 4: 0, 0 | |
| cc1: note: token 4 has x-location == y-location == 0 | |
| 5: 0, 0 | |
| cc1: note: token 5 has x-location == y-location == 0 | |
| 6: 0, 0 | |
| cc1: note: token 6 has x-location == y-location == 0 | |
| MACRO 1: __GCC_IEC_559_COMPLEX (1 tokens) | |
| location_t interval: 2147483646 <= loc < 2147483647 | |
| In file included from <command-line>:31: | |
| /usr/include/stdc-predef.h:45:6: note: expansion point is location 180564 | |
| 45 | # if __GCC_IEC_559_COMPLEX > 0 | |
| | ^~~~~~~~~~~~~~~~~~~~~ | |
| map->start_location: 2147483646 | |
| macro_locations: | |
| 0: 1, 1 | |
| <built-in>: note: token 0 has x-location == y-location == 1 | |
| MACRO 0: __GCC_IEC_559 (1 tokens) | |
| location_t interval: 2147483647 <= loc < 2147483648 | |
| /usr/include/stdc-predef.h:37:6: note: expansion point is location 147788 | |
| 37 | # if __GCC_IEC_559 > 0 | |
| | ^~~~~~~~~~~~~ | |
| map->start_location: 2147483647 | |
| macro_locations: | |
| 0: 1, 1 | |
| <built-in>: note: token 0 has x-location == y-location == 1 | |
| MAX_LOCATION_T | |
| location_t interval: 2147483647 <= loc < 2147483648 | |
| AD-HOC LOCATIONS | |
| location_t interval: 2147483648 <= loc < 4294967295 | |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |