diff options
author | Per Bothner <per@bothner.com> | 2004-07-14 17:02:30 -0700 |
---|---|---|
committer | Per Bothner <bothner@gcc.gnu.org> | 2004-07-14 17:02:30 -0700 |
commit | aa3c6dc1604edf2119da7cf6d39c6afab3a676d7 (patch) | |
tree | 590981ecbc489c808f0c696cd08606defbd93ffa /gcc | |
parent | 368b7a304e674df0e140b6dc164e670650c56486 (diff) | |
download | gcc-aa3c6dc1604edf2119da7cf6d39c6afab3a676d7.zip gcc-aa3c6dc1604edf2119da7cf6d39c6afab3a676d7.tar.gz gcc-aa3c6dc1604edf2119da7cf6d39c6afab3a676d7.tar.bz2 |
input.h: If USE_MAPPED_LOCATION...
* input.h: If USE_MAPPED_LOCATION, define separate expanded_location
structure with extra column field.
* tree.c (expand_location): Also fill in column field.
* gengtype-lex.l: Ignore expanded_location typedef, sinze gengtype
gets confused by the two conditionally-compiled definitions.
From-SVN: r84721
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/gengtype-lex.l | 3 | ||||
-rw-r--r-- | gcc/input.h | 18 | ||||
-rw-r--r-- | gcc/tree.c | 3 |
4 files changed, 26 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6f4c6c0..cb26f13 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2004-07-14 Per Bothner <per@bothner.com> + + * input.h: If USE_MAPPED_LOCATION, define separate expanded_location + structure with extra column field. + * tree.c (expand_location): Also fill in column field. + * gengtype-lex.l: Ignore expanded_location typedef, sinze gengtype + gets confused by the two conditionally-compiled definitions. + 2004-07-14 Eric Christopher <echristo@redhat.com> * calls.c (expand_call): Fix typo in comment. diff --git a/gcc/gengtype-lex.l b/gcc/gengtype-lex.l index 22a5cd8..60b738e 100644 --- a/gcc/gengtype-lex.l +++ b/gcc/gengtype-lex.l @@ -91,7 +91,8 @@ ITYPE {IWORD}({WS}{IWORD})* namestart = xmemdup (namestart, namelen, namelen+1); #ifdef USE_MAPPED_LOCATION /* temporary kludge - gentype doesn't handle cpp conditionals */ - if (strcmp (namestart, "location_t") != 0) + if (strcmp (namestart, "location_t") != 0 + && strcmp (namestart, "expanded_location") != 0) #endif do_typedef (namestart, t, &lexer_line); update_lineno (yytext, yyleng); diff --git a/gcc/input.h b/gcc/input.h index f34c74e..f15ce66 100644 --- a/gcc/input.h +++ b/gcc/input.h @@ -28,7 +28,9 @@ extern struct line_maps line_table; /* The location for declarations in "<built-in>" */ #define BUILTINS_LOCATION ((source_location) 2) -typedef struct location_s GTY(()) +#ifdef USE_MAPPED_LOCATION + +typedef struct { /* The name of the source file involved. */ const char *file; @@ -36,11 +38,9 @@ typedef struct location_s GTY(()) /* The line-location in the source file. */ int line; - /* FUTURE (but confuses gentype): int column. */ + int column; } expanded_location; -#ifdef USE_MAPPED_LOCATION - extern expanded_location expand_location (source_location); #define UNKNOWN_LOCATION ((source_location) 0) @@ -49,6 +49,16 @@ typedef source_location source_locus; /* to be removed */ #else /* ! USE_MAPPED_LOCATION */ +struct location_s GTY(()) +{ + /* The name of the source file involved. */ + const char *file; + + /* The line-location in the source file. */ + int line; +}; + +typedef struct location_s expanded_location; typedef struct location_s location_t; typedef location_t *source_locus; @@ -2760,12 +2760,13 @@ expanded_location expand_location (source_location loc) { expanded_location xloc; - if (loc == 0) { xloc.file = NULL; xloc.line = 0; } + if (loc == 0) { xloc.file = NULL; xloc.line = 0; xloc.column = 0; } else { const struct line_map *map = linemap_lookup (&line_table, loc); xloc.file = map->to_file; xloc.line = SOURCE_LINE (map, loc); + xloc.column = SOURCE_COLUMN (map, loc); }; return xloc; } |