This hides a part of the internal strings processing detail by
using appropriate APIs.

LTO bootstrap ongoing on x86_64-unknown-linux-gnu.

Richard.

2014-08-14  Richard Biener  <rguent...@suse.de>

        * data-streamer.h (streamer_string_index, string_for_index):
        Remove.
        * data-streamer-out.c (streamer_string_index): Make static.
        * data-streamer-in.c (string_for_index): Likewise.
        * lto-streamer-out.c (lto_output_location): Use bp_pack_string.
        * lto-streamer-in.c (lto_input_location): Use bp_unpack_string.

Index: gcc/data-streamer.h
===================================================================
--- gcc/data-streamer.h (revision 213966)
+++ gcc/data-streamer.h (working copy)
@@ -57,8 +57,6 @@ void streamer_write_hwi (struct output_b
 void streamer_write_gcov_count (struct output_block *, gcov_type);
 void streamer_write_string (struct output_block *, struct lto_output_stream *,
                            const char *, bool);
-unsigned streamer_string_index (struct output_block *, const char *,
-                               unsigned int, bool);
 void streamer_write_string_with_length (struct output_block *,
                                        struct lto_output_stream *,
                                        const char *, unsigned int, bool);
@@ -74,7 +72,6 @@ void streamer_write_data_stream (struct
                                 size_t);
 
 /* In data-streamer-in.c  */
-const char *string_for_index (struct data_in *, unsigned int, unsigned int *);
 const char *streamer_read_string (struct data_in *, struct lto_input_block *);
 const char *streamer_read_indexed_string (struct data_in *,
                                          struct lto_input_block *,
Index: gcc/data-streamer-out.c
===================================================================
--- gcc/data-streamer-out.c     (revision 213966)
+++ gcc/data-streamer-out.c     (working copy)
@@ -81,7 +81,7 @@ lto_append_block (struct lto_output_stre
    When PERSISTENT is set, the string S is supposed to not change during
    duration of the OB and thus OB can keep pointer into it.  */
 
-unsigned
+static unsigned
 streamer_string_index (struct output_block *ob, const char *s, unsigned int 
len,
                       bool persistent)
 {
Index: gcc/data-streamer-in.c
===================================================================
--- gcc/data-streamer-in.c      (revision 213966)
+++ gcc/data-streamer-in.c      (working copy)
@@ -36,7 +36,7 @@ along with GCC; see the file COPYING3.
 /* Read a string from the string table in DATA_IN using input block
    IB.  Write the length to RLEN.  */
 
-const char *
+static const char *
 string_for_index (struct data_in *data_in, unsigned int loc, unsigned int 
*rlen)
 {
   unsigned int len;
Index: gcc/lto-streamer-out.c
===================================================================
--- gcc/lto-streamer-out.c      (revision 213966)
+++ gcc/lto-streamer-out.c      (working copy)
@@ -189,10 +189,7 @@ lto_output_location (struct output_block
   bp_pack_value (bp, ob->current_col != xloc.column, 1);
 
   if (ob->current_file != xloc.file)
-    bp_pack_var_len_unsigned (bp,
-                             streamer_string_index (ob, xloc.file,
-                                                    strlen (xloc.file) + 1,
-                                                    true));
+    bp_pack_string (ob, bp, xloc.file, true);
   ob->current_file = xloc.file;
 
   if (ob->current_line != xloc.line)
Index: gcc/lto-streamer-in.c
===================================================================
--- gcc/lto-streamer-in.c       (revision 213966)
+++ gcc/lto-streamer-in.c       (working copy)
@@ -154,7 +154,6 @@ lto_input_location (struct bitpack_d *bp
   static int current_line;
   static int current_col;
   bool file_change, line_change, column_change;
-  unsigned len;
   bool prev_file = current_file != NULL;
 
   if (bp_unpack_value (bp, 1))
@@ -165,10 +164,7 @@ lto_input_location (struct bitpack_d *bp
   column_change = bp_unpack_value (bp, 1);
 
   if (file_change)
-    current_file = canon_file_name
-                    (string_for_index (data_in,
-                                       bp_unpack_var_len_unsigned (bp),
-                                       &len));
+    current_file = canon_file_name (bp_unpack_string (data_in, bp));
 
   if (line_change)
     current_line = bp_unpack_var_len_unsigned (bp);

Reply via email to