aboutsummaryrefslogtreecommitdiff
path: root/gcc/data-streamer-in.c
diff options
context:
space:
mode:
authorSofiane Naci <sofiane.naci@arm.com>2012-10-22 12:28:14 +0000
committerSofiane Naci <sofiane.naci@arm.com>2012-10-22 12:28:14 +0000
commit369b71ecad513571a31ed3989a33629404847832 (patch)
tree77fa03ebcefe174abeaef371e7fb332b2d928284 /gcc/data-streamer-in.c
parent2b86be5b85981f0186dc90c8726e5a86abd99b4b (diff)
parentfe41acb87a4145f35518841c7d83cb8f88dc5d9e (diff)
Merge from trunk 192445:192598.ARM/aarch64-branch
git-svn-id: https://gcc.gnu.org/svn/gcc/branches/ARM/aarch64-branch@192688 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/data-streamer-in.c')
-rw-r--r--gcc/data-streamer-in.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/gcc/data-streamer-in.c b/gcc/data-streamer-in.c
index 72fce0598a7..bcd6c08a691 100644
--- a/gcc/data-streamer-in.c
+++ b/gcc/data-streamer-in.c
@@ -86,6 +86,35 @@ streamer_read_string (struct data_in *data_in, struct lto_input_block *ib)
}
+/* Read a string from the string table in DATA_IN using the bitpack BP.
+ Write the length to RLEN. */
+
+const char *
+bp_unpack_indexed_string (struct data_in *data_in,
+ struct bitpack_d *bp, unsigned int *rlen)
+{
+ return string_for_index (data_in, bp_unpack_var_len_unsigned (bp), rlen);
+}
+
+
+/* Read a NULL terminated string from the string table in DATA_IN. */
+
+const char *
+bp_unpack_string (struct data_in *data_in, struct bitpack_d *bp)
+{
+ unsigned int len;
+ const char *ptr;
+
+ ptr = bp_unpack_indexed_string (data_in, bp, &len);
+ if (!ptr)
+ return NULL;
+ if (ptr[len - 1] != '\0')
+ internal_error ("bytecode stream: found non-null terminated string");
+
+ return ptr;
+}
+
+
/* Read an unsigned HOST_WIDE_INT number from IB. */
unsigned HOST_WIDE_INT