add names for constants in line-map.c
diff mbox

Message ID CAESRpQDPVsDHi2ub8CV1CDjoFyt1OG=Sy2LM8xT+KeXYDO3OJQ@mail.gmail.com
State New
Headers show

Commit Message

Manuel López-Ibáñez May 23, 2015, 10:46 a.m. UTC
This patch adds descriptive names to various constants in line-map.c.

There were some differences between the constants used a various
places, but my understanding is that these differences are arbitrary
and it is easier to understand the code if they are harmonized.

Bootstrapped and regression tested on x86-linux-gnu.

OK?

libcpp/ChangeLog:

2015-05-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>

    * line-map.c (LINE_MAP_MAX_COLUMN_NUMBER
    LINE_MAP_MAX_LOCATION_WITH_COLS,LINE_MAP_MAX_SOURCE_LOCATION):
    New constants.
    (linemap_line_start): Use them.
    (linemap_position_for_column): Use them.

Comments

Jeff Law May 26, 2015, 2:18 p.m. UTC | #1
On 05/23/2015 04:46 AM, Manuel López-Ibáñez wrote:
> This patch adds descriptive names to various constants in line-map.c.
>
> There were some differences between the constants used a various
> places, but my understanding is that these differences are arbitrary
> and it is easier to understand the code if they are harmonized.
>
> Bootstrapped and regression tested on x86-linux-gnu.
>
> OK?
>
> libcpp/ChangeLog:
>
> 2015-05-23  Manuel López-Ibáñez  <manu@gcc.gnu.org>
>
>      * line-map.c (LINE_MAP_MAX_COLUMN_NUMBER
>      LINE_MAP_MAX_LOCATION_WITH_COLS,LINE_MAP_MAX_SOURCE_LOCATION):
>      New constants.
>      (linemap_line_start): Use them.
>      (linemap_position_for_column): Use them.
OK for the trunk, please install.

Thanks,
Jeff

Patch
diff mbox

Index: libcpp/line-map.c
===================================================================
--- libcpp/line-map.c	(revision 223596)
+++ libcpp/line-map.c	(working copy)
@@ -24,10 +24,22 @@  along with this program; see the file CO
 #include "line-map.h"
 #include "cpplib.h"
 #include "internal.h"
 #include "hashtab.h"
 
+/* Do not track column numbers higher than this one.  As a result, the
+   range of column_bits is [7, 18] (or 0 if column numbers are
+   disabled).  */
+const unsigned int LINE_MAP_MAX_COLUMN_NUMBER = (1U << 17);
+
+/* Do not track column numbers if locations get higher than this.  */
+const source_location LINE_MAP_MAX_LOCATION_WITH_COLS = 0x60000000;
+
+/* Highest possible source location encoded within an ordinary or
+   macro map.  */
+const source_location LINE_MAP_MAX_SOURCE_LOCATION = 0x70000000;
+
 static void trace_include (const struct line_maps *, const line_map_ordinary *);
 static const line_map_ordinary * linemap_ordinary_map_lookup (struct line_maps *,
 							      source_location);
 static const line_map_macro* linemap_macro_map_lookup (struct line_maps *,
 						       source_location);
@@ -542,26 +554,27 @@  linemap_line_start (struct line_maps *se
       || (line_delta > 10
 	  && line_delta * ORDINARY_MAP_NUMBER_OF_COLUMN_BITS (map) > 1000)
       || (max_column_hint >= (1U << ORDINARY_MAP_NUMBER_OF_COLUMN_BITS (map)))
       || (max_column_hint <= 80
 	  && ORDINARY_MAP_NUMBER_OF_COLUMN_BITS (map) >= 10)
-      || (highest > 0x60000000
-	  && (set->max_column_hint || highest > 0x70000000)))
+      || (highest > LINE_MAP_MAX_LOCATION_WITH_COLS
+	  && (set->max_column_hint || highest >= LINE_MAP_MAX_SOURCE_LOCATION)))
     add_map = true;
   else
     max_column_hint = set->max_column_hint;
   if (add_map)
     {
       int column_bits;
-      if (max_column_hint > 100000 || highest > 0x60000000)
+      if (max_column_hint > LINE_MAP_MAX_COLUMN_NUMBER
+	  || highest > LINE_MAP_MAX_LOCATION_WITH_COLS)
 	{
 	  /* If the column number is ridiculous or we've allocated a huge
 	     number of source_locations, give up on column numbers. */
 	  max_column_hint = 0;
-	  if (highest > 0x70000000)
-	    return 0;
 	  column_bits = 0;
+	  if (highest > LINE_MAP_MAX_SOURCE_LOCATION)
+	    return 0;
 	}
       else
 	{
 	  column_bits = 7;
 	  while (max_column_hint >= (1U << column_bits))
@@ -613,11 +626,12 @@  linemap_position_for_column (struct line
   linemap_assert
     (!linemap_macro_expansion_map_p (LINEMAPS_LAST_ORDINARY_MAP (set)));
 
   if (to_column >= set->max_column_hint)
     {
-      if (r >= 0xC000000 || to_column > 100000)
+      if (r > LINE_MAP_MAX_LOCATION_WITH_COLS
+	  || to_column > LINE_MAP_MAX_COLUMN_NUMBER)
 	{
 	  /* Running low on source_locations - disable column numbers.  */
 	  return r;
 	}
       else