diff mbox series

[1/3] Do a refactoring in linemap (PR preprocessor/90382).

Message ID 8d7fedc9658d7c4e5d3b4538accf4d9cbb81d5ff.1557820874.git.mliska@suse.cz
State New
Headers show
Series Fix linemap assertation connected to PR preprocessor/90382. | expand

Commit Message

Martin Liška May 13, 2019, 11:07 a.m. UTC
libcpp/ChangeLog:

2019-05-13  Martin Liska  <mliska@suse.cz>

	PR preprocessor/90382
	* include/line-map.h (get_data_from_adhoc_loc): Add const to
	the first argument.
	(get_location_from_adhoc_loc): Likewise.
	* line-map.c(get_data_from_adhoc_loc):  Add const to
	the first argument.
	(get_location_from_adhoc_loc): Likewise.
	(get_combined_adhoc_loc): Use get_location_from_adhoc_loc
	(or get_data_from_adhoc_loc).
	(get_range_from_adhoc_loc): Likewise.
	(get_pure_location): Likewise.
	(linemap_position_for_loc_and_offset): Likewise.
	(linemap_lookup): Likewise.
	(linemap_ordinary_map_lookup): Likewise.
	(linemap_macro_map_lookup): Likewise.
	(linemap_get_expansion_line): Likewise.
	(linemap_get_expansion_filename): Likewise.
	(linemap_location_in_system_header_p): Likewise.
	(linemap_location_from_macro_expansion_p): Likewise.
	(linemap_macro_loc_to_exp_point): Likewise.
	(linemap_resolve_location): Likewise.
	(linemap_unwind_toward_expansion): Likewise.
	(linemap_unwind_to_first_non_reserved_loc): Likewise.
	(linemap_expand_location): Likewise.
	(linemap_dump_location): Likewise.
---
 libcpp/include/line-map.h |  4 ++--
 libcpp/line-map.c         | 48 ++++++++++++++++-----------------------
 2 files changed, 22 insertions(+), 30 deletions(-)

Comments

Nathan Sidwell May 14, 2019, 11:30 a.m. UTC | #1
On 5/13/19 7:07 AM, marxin wrote:
> 
> libcpp/ChangeLog:
> 
> 2019-05-13  Martin Liska  <mliska@suse.cz>
> 
> 	PR preprocessor/90382
> 	* include/line-map.h (get_data_from_adhoc_loc): Add const to
> 	the first argument.
> 	(get_location_from_adhoc_loc): Likewise.
> 	* line-map.c(get_data_from_adhoc_loc):  Add const to
> 	the first argument.
> 	(get_location_from_adhoc_loc): Likewise.
> 	(get_combined_adhoc_loc): Use get_location_from_adhoc_loc
> 	(or get_data_from_adhoc_loc).
> 	(get_range_from_adhoc_loc): Likewise.
> 	(get_pure_location): Likewise.
> 	(linemap_position_for_loc_and_offset): Likewise.
> 	(linemap_lookup): Likewise.
> 	(linemap_ordinary_map_lookup): Likewise.
> 	(linemap_macro_map_lookup): Likewise.
> 	(linemap_get_expansion_line): Likewise.
> 	(linemap_get_expansion_filename): Likewise.
> 	(linemap_location_in_system_header_p): Likewise.
> 	(linemap_location_from_macro_expansion_p): Likewise.
> 	(linemap_macro_loc_to_exp_point): Likewise.
> 	(linemap_resolve_location): Likewise.
> 	(linemap_unwind_toward_expansion): Likewise.
> 	(linemap_unwind_to_first_non_reserved_loc): Likewise.
> 	(linemap_expand_location): Likewise.
> 	(linemap_dump_location): Likewise.
> ---
>   libcpp/include/line-map.h |  4 ++--
>   libcpp/line-map.c         | 48 ++++++++++++++++-----------------------
>   2 files changed, 22 insertions(+), 30 deletions(-)

ok.  Thanks for cleaning this up.

nathan
diff mbox series

Patch

diff --git a/libcpp/include/line-map.h b/libcpp/include/line-map.h
index 6c77c288855..7649700e8a5 100644
--- a/libcpp/include/line-map.h
+++ b/libcpp/include/line-map.h
@@ -1054,8 +1054,8 @@  extern location_t get_combined_adhoc_loc (struct line_maps *,
 					       location_t,
 					       source_range,
 					       void *);
-extern void *get_data_from_adhoc_loc (struct line_maps *, location_t);
-extern location_t get_location_from_adhoc_loc (struct line_maps *,
+extern void *get_data_from_adhoc_loc (const struct line_maps *, location_t);
+extern location_t get_location_from_adhoc_loc (const struct line_maps *,
 						    location_t);
 
 extern source_range get_range_from_loc (line_maps *set, location_t loc);
diff --git a/libcpp/line-map.c b/libcpp/line-map.c
index b73f5067c24..e1fc0e9faf4 100644
--- a/libcpp/line-map.c
+++ b/libcpp/line-map.c
@@ -163,8 +163,7 @@  get_combined_adhoc_loc (struct line_maps *set,
   struct location_adhoc_data **slot;
 
   if (IS_ADHOC_LOC (locus))
-    locus
-      = set->location_adhoc_data_map.data[locus & MAX_LOCATION_T].locus;
+    locus = get_location_from_adhoc_loc (set, locus);
   if (locus == 0 && data == NULL)
     return 0;
 
@@ -243,7 +242,7 @@  get_combined_adhoc_loc (struct line_maps *set,
 /* Return the data for the adhoc loc.  */
 
 void *
-get_data_from_adhoc_loc (struct line_maps *set, location_t loc)
+get_data_from_adhoc_loc (const struct line_maps *set, location_t loc)
 {
   linemap_assert (IS_ADHOC_LOC (loc));
   return set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].data;
@@ -252,7 +251,7 @@  get_data_from_adhoc_loc (struct line_maps *set, location_t loc)
 /* Return the location for the adhoc loc.  */
 
 location_t
-get_location_from_adhoc_loc (struct line_maps *set, location_t loc)
+get_location_from_adhoc_loc (const struct line_maps *set, location_t loc)
 {
   linemap_assert (IS_ADHOC_LOC (loc));
   return set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].locus;
@@ -261,7 +260,7 @@  get_location_from_adhoc_loc (struct line_maps *set, location_t loc)
 /* Return the source_range for adhoc location LOC.  */
 
 static source_range
-get_range_from_adhoc_loc (struct line_maps *set, location_t loc)
+get_range_from_adhoc_loc (const struct line_maps *set, location_t loc)
 {
   linemap_assert (IS_ADHOC_LOC (loc));
   return set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].src_range;
@@ -321,8 +320,7 @@  location_t
 get_pure_location (line_maps *set, location_t loc)
 {
   if (IS_ADHOC_LOC (loc))
-    loc
-      = set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].locus;
+    loc = get_location_from_adhoc_loc (set, loc);
 
   if (loc >= LINEMAPS_MACRO_LOWEST_LOCATION (set))
     return loc;
@@ -872,7 +870,7 @@  linemap_position_for_loc_and_offset (struct line_maps *set,
   const line_map_ordinary * map = NULL;
 
   if (IS_ADHOC_LOC (loc))
-    loc = set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].locus;
+    loc = get_location_from_adhoc_loc (set, loc);
 
   /* This function does not support virtual locations yet.  */
   if (linemap_location_from_macro_expansion_p (set, loc))
@@ -934,7 +932,7 @@  const struct line_map*
 linemap_lookup (struct line_maps *set, location_t line)
 {
   if (IS_ADHOC_LOC (line))
-    line = set->location_adhoc_data_map.data[line & MAX_LOCATION_T].locus;
+    line = get_location_from_adhoc_loc (set, line);
   if (linemap_location_from_macro_expansion_p (set, line))
     return linemap_macro_map_lookup (set, line);
   return linemap_ordinary_map_lookup (set, line);
@@ -952,7 +950,7 @@  linemap_ordinary_map_lookup (struct line_maps *set, location_t line)
   const line_map_ordinary *cached, *result;
 
   if (IS_ADHOC_LOC (line))
-    line = set->location_adhoc_data_map.data[line & MAX_LOCATION_T].locus;
+    line = get_location_from_adhoc_loc (set, line);
 
   if (set ==  NULL || line < RESERVED_LOCATION_COUNT)
     return NULL;
@@ -1000,7 +998,7 @@  linemap_macro_map_lookup (struct line_maps *set, location_t line)
   const struct line_map_macro *cached, *result;
 
   if (IS_ADHOC_LOC (line))
-    line = set->location_adhoc_data_map.data[line & MAX_LOCATION_T].locus;
+    line = get_location_from_adhoc_loc (set, line);
 
   linemap_assert (line >= LINEMAPS_MACRO_LOWEST_LOCATION (set));
 
@@ -1130,8 +1128,7 @@  linemap_get_expansion_line (struct line_maps *set,
   const line_map_ordinary *map = NULL;
 
   if (IS_ADHOC_LOC (location))
-    location = set->location_adhoc_data_map.data[location
-						 & MAX_LOCATION_T].locus;
+    location = get_location_from_adhoc_loc (set, location);
 
   if (location < RESERVED_LOCATION_COUNT)
     return 0;
@@ -1158,8 +1155,7 @@  linemap_get_expansion_filename (struct line_maps *set,
   const struct line_map_ordinary *map = NULL;
 
   if (IS_ADHOC_LOC (location))
-    location = set->location_adhoc_data_map.data[location
-						 & MAX_LOCATION_T].locus;
+    location = get_location_from_adhoc_loc (set, location);
 
   if (location < RESERVED_LOCATION_COUNT)
     return NULL;
@@ -1196,8 +1192,7 @@  linemap_location_in_system_header_p (struct line_maps *set,
   const struct line_map *map = NULL;
 
   if (IS_ADHOC_LOC (location))
-    location = set->location_adhoc_data_map.data[location
-						 & MAX_LOCATION_T].locus;
+    location = get_location_from_adhoc_loc (set, location);
 
   if (location < RESERVED_LOCATION_COUNT)
     return false;
@@ -1240,8 +1235,7 @@  linemap_location_from_macro_expansion_p (const struct line_maps *set,
 					 location_t location)
 {
   if (IS_ADHOC_LOC (location))
-    location = set->location_adhoc_data_map.data[location
-						 & MAX_LOCATION_T].locus;
+    location = get_location_from_adhoc_loc (set, location);
 
   return IS_MACRO_LOC (location);
 }
@@ -1467,8 +1461,7 @@  linemap_macro_loc_to_exp_point (struct line_maps *set,
   struct line_map *map;
 
   if (IS_ADHOC_LOC (location))
-    location = set->location_adhoc_data_map.data[location
-						 & MAX_LOCATION_T].locus;
+    location = get_location_from_adhoc_loc (set, location);
 
   linemap_assert (set && location >= RESERVED_LOCATION_COUNT);
 
@@ -1542,7 +1535,7 @@  linemap_resolve_location (struct line_maps *set,
 {
   location_t locus = loc;
   if (IS_ADHOC_LOC (loc))
-    locus = set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].locus;
+    locus = get_location_from_adhoc_loc (set, loc);
 
   if (locus < RESERVED_LOCATION_COUNT)
     {
@@ -1624,7 +1617,7 @@  linemap_unwind_toward_expansion (struct line_maps *set,
   const struct line_map *resolved_map;
 
   if (IS_ADHOC_LOC (loc))
-    loc = set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].locus;
+    loc = get_location_from_adhoc_loc (set, loc);
 
   resolved_location =
     linemap_macro_map_loc_unwind_toward_spelling (set, macro_map, loc);
@@ -1664,7 +1657,7 @@  linemap_unwind_to_first_non_reserved_loc (struct line_maps *set,
   const line_map_ordinary *map1 = NULL;
 
   if (IS_ADHOC_LOC (loc))
-    loc = set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].locus;
+    loc = get_location_from_adhoc_loc (set, loc);
 
   map0 = linemap_lookup (set, loc);
   if (!linemap_macro_expansion_map_p (map0))
@@ -1709,9 +1702,8 @@  linemap_expand_location (struct line_maps *set,
   memset (&xloc, 0, sizeof (xloc));
   if (IS_ADHOC_LOC (loc))
     {
-      xloc.data
-	= set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].data;
-      loc = set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].locus;
+      xloc.data = get_data_from_adhoc_loc (set, loc);
+      loc = get_location_from_adhoc_loc (set, loc);
     }
 
   if (loc < RESERVED_LOCATION_COUNT)
@@ -1815,7 +1807,7 @@  linemap_dump_location (struct line_maps *set,
   int l = -1, c = -1, s = -1, e = -1;
 
   if (IS_ADHOC_LOC (loc))
-    loc = set->location_adhoc_data_map.data[loc & MAX_LOCATION_T].locus;
+    loc = get_location_from_adhoc_loc (set, loc);
 
   if (loc == 0)
     return;