aboutsummaryrefslogtreecommitdiff
path: root/libcpp/include/line-map.h
diff options
context:
space:
mode:
Diffstat (limited to 'libcpp/include/line-map.h')
-rw-r--r--libcpp/include/line-map.h69
1 files changed, 45 insertions, 24 deletions
diff --git a/libcpp/include/line-map.h b/libcpp/include/line-map.h
index 44fea0e..9e1b11d 100644
--- a/libcpp/include/line-map.h
+++ b/libcpp/include/line-map.h
@@ -784,6 +784,24 @@ class GTY(()) line_maps {
public:
~line_maps ();
+
+ bool pure_location_p (location_t loc) const;
+ location_t get_pure_location (location_t loc) const;
+
+ source_range get_range_from_loc (location_t loc) const;
+ location_t get_start (location_t loc) const
+ {
+ return get_range_from_loc (loc).m_start;
+ }
+ location_t
+ get_finish (location_t loc) const
+ {
+ return get_range_from_loc (loc).m_finish;
+ }
+
+ location_t make_location (location_t caret,
+ location_t start,
+ location_t finish);
maps_info_ordinary info_ordinary;
@@ -1041,19 +1059,19 @@ extern unsigned get_discriminator_from_adhoc_loc (const line_maps *, location_t)
extern location_t get_location_from_adhoc_loc (const line_maps *,
location_t);
-extern source_range get_range_from_loc (line_maps *set, location_t loc);
-extern unsigned get_discriminator_from_loc (line_maps *set, location_t loc);
+extern source_range get_range_from_loc (const line_maps *set, location_t loc);
+extern unsigned get_discriminator_from_loc (const line_maps *set, location_t loc);
/* Get whether location LOC is a "pure" location, or
whether it is an ad-hoc location, or embeds range information. */
bool
-pure_location_p (line_maps *set, location_t loc);
+pure_location_p (const line_maps *set, location_t loc);
/* Given location LOC within SET, strip away any packed range information
or ad-hoc information. */
-extern location_t get_pure_location (line_maps *set, location_t loc);
+extern location_t get_pure_location (const line_maps *set, location_t loc);
/* Combine LOC and BLOCK, giving a combined adhoc location. */
@@ -1078,7 +1096,7 @@ extern void linemap_init (class line_maps *set,
/* Check for and warn about line_maps entered but not exited. */
-extern void linemap_check_files_exited (class line_maps *);
+extern void linemap_check_files_exited (const line_maps *);
/* Return a location_t for the start (i.e. column==0) of
(physical) line TO_LINE in the current source file (as in the
@@ -1156,7 +1174,7 @@ unsigned linemap_lookup_macro_index (const line_maps *, location_t);
/* Returns TRUE if the line table set tracks token locations across
macro expansion, FALSE otherwise. */
-bool linemap_tracks_macro_expansion_locs_p (class line_maps *);
+bool linemap_tracks_macro_expansion_locs_p (const line_maps *);
/* Return the name of the macro associated to MACRO_MAP. */
const char* linemap_map_get_macro_name (const line_map_macro *);
@@ -1170,7 +1188,7 @@ const char* linemap_map_get_macro_name (const line_map_macro *);
Note that this function returns 1 if LOCATION belongs to a token
that is part of a macro replacement-list defined in a system
header, but expanded in a non-system file. */
-int linemap_location_in_system_header_p (class line_maps *,
+int linemap_location_in_system_header_p (const line_maps *,
location_t);
/* Return TRUE if LOCATION is a source code location of a token that is part of
@@ -1180,7 +1198,7 @@ bool linemap_location_from_macro_expansion_p (const line_maps *,
/* TRUE if LOCATION is a source code location of a token that is part of the
definition of a macro, FALSE otherwise. */
-bool linemap_location_from_macro_definition_p (class line_maps *,
+bool linemap_location_from_macro_definition_p (const line_maps *,
location_t);
/* With the precondition that LOCATION is the locus of a token that is
@@ -1188,8 +1206,10 @@ bool linemap_location_from_macro_definition_p (class line_maps *,
expansion of MACRO_MAP, return the locus of that argument in the
context of the caller of MACRO_MAP. */
-extern location_t linemap_macro_map_loc_unwind_toward_spelling
- (line_maps *set, const line_map_macro *macro_map, location_t location);
+extern location_t
+linemap_macro_map_loc_unwind_toward_spelling (const line_maps *set,
+ const line_map_macro *macro_map,
+ location_t location);
/* location_t values from 0 to RESERVED_LOCATION_COUNT-1 will
be reserved for libcpp user as special values, no token from libcpp
@@ -1220,8 +1240,9 @@ linemap_included_from (const line_map_ordinary *ord_map)
}
/* The linemap containing the included-from location of MAP. */
-const line_map_ordinary *linemap_included_from_linemap
- (line_maps *set, const line_map_ordinary *map);
+const line_map_ordinary *
+linemap_included_from_linemap (const line_maps *set,
+ const line_map_ordinary *map);
/* True if the map is at the bottom of the include stack. */
@@ -1277,7 +1298,7 @@ LINEMAP_SYSP (const line_map_ordinary *ord_map)
return ord_map->sysp;
}
-const struct line_map *first_map_in_common (line_maps *set,
+const struct line_map *first_map_in_common (const line_maps *set,
location_t loc0,
location_t loc1,
location_t *res_loc0,
@@ -1287,7 +1308,7 @@ const struct line_map *first_map_in_common (line_maps *set,
comes before the token of POST, 0 if PRE denotes the location of
the same token as the token for POST, and a negative value
otherwise. */
-int linemap_compare_locations (class line_maps *set,
+int linemap_compare_locations (const line_maps *set,
location_t pre,
location_t post);
@@ -1295,7 +1316,7 @@ int linemap_compare_locations (class line_maps *set,
topogically before the token denoted by location LOC_B, or if they
are equal. */
inline bool
-linemap_location_before_p (class line_maps *set,
+linemap_location_before_p (const line_maps *set,
location_t loc_a,
location_t loc_b)
{
@@ -2043,7 +2064,7 @@ enum location_resolution_kind
resolves to a location reserved for the client code, like
UNKNOWN_LOCATION or BUILTINS_LOCATION in GCC. */
-location_t linemap_resolve_location (class line_maps *,
+location_t linemap_resolve_location (const line_maps *,
location_t loc,
enum location_resolution_kind lrk,
const line_map_ordinary **loc_map);
@@ -2055,7 +2076,7 @@ location_t linemap_resolve_location (class line_maps *,
the point where M' was expanded. LOC_MAP is an output parameter.
When non-NULL, *LOC_MAP is set to the map of the returned
location. */
-location_t linemap_unwind_toward_expansion (class line_maps *,
+location_t linemap_unwind_toward_expansion (const line_maps *,
location_t loc,
const line_map **loc_map);
@@ -2073,7 +2094,7 @@ location_t linemap_unwind_toward_expansion (class line_maps *,
*MAP is set to the map of the returned location if the later is
different from LOC. */
-location_t linemap_unwind_to_first_non_reserved_loc (class line_maps *,
+location_t linemap_unwind_to_first_non_reserved_loc (const line_maps *,
location_t loc,
const line_map **map);
@@ -2081,7 +2102,7 @@ location_t linemap_unwind_to_first_non_reserved_loc (class line_maps *,
code location. LOC must be a spelling (non-virtual) location. If
it's a location < RESERVED_LOCATION_COUNT a zeroed expanded source
location is returned. */
-expanded_location linemap_expand_location (class line_maps *,
+expanded_location linemap_expand_location (const line_maps *,
const line_map *,
location_t loc);
@@ -2108,27 +2129,27 @@ struct linemap_stats
there is a line map in SET. FILE_NAME is the file name to
consider. If the function returns TRUE, *LOC is set to the highest
location emitted for that file. */
-bool linemap_get_file_highest_location (class line_maps * set,
+bool linemap_get_file_highest_location (const line_maps * set,
const char *file_name,
location_t *loc);
/* Compute and return statistics about the memory consumption of some
parts of the line table SET. */
-void linemap_get_statistics (line_maps *, struct linemap_stats *);
+void linemap_get_statistics (const line_maps *, struct linemap_stats *);
/* Dump debugging information about source location LOC into the file
stream STREAM. SET is the line map set LOC comes from. */
-void linemap_dump_location (line_maps *, location_t, FILE *);
+void linemap_dump_location (const line_maps *, location_t, FILE *);
/* Dump line map at index IX in line table SET to STREAM. If STREAM
is NULL, use stderr. IS_MACRO is true if the caller wants to
dump a macro map, false otherwise. */
-void linemap_dump (FILE *, line_maps *, unsigned, bool);
+void linemap_dump (FILE *, const line_maps *, unsigned, bool);
/* Dump line table SET to STREAM. If STREAM is NULL, stderr is used.
NUM_ORDINARY specifies how many ordinary maps to dump. NUM_MACRO
specifies how many macro maps to dump. */
-void line_table_dump (FILE *, line_maps *, unsigned int, unsigned int);
+void line_table_dump (FILE *, const line_maps *, unsigned int, unsigned int);
/* An enum for distinguishing the various parts within a location_t. */