mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			278 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			278 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 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
 | |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 |