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
This commit is contained in:
parent
368b7a304e
commit
aa3c6dc160
4 changed files with 26 additions and 6 deletions
|
@ -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.
|
||||
|
|
|
@ -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);
|
||||
|
|
18
gcc/input.h
18
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;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue