From 673ca05f187ae8180b4149e16022f28187e076f4 Mon Sep 17 00:00:00 2001 From: hubicka Date: Mon, 2 May 2011 12:37:13 +0000 Subject: * lto-section-in.c (lto_input_1_unsigned): Move to lto-streamer.h (lto_section_overrun): New. * lto-section-out.c (append_block): Rename to ... (lto_append_block): ... this one; export. (lto_output_1_stream): Move lto lto-streamer.h (lto_output_data_stream): Update. * lto-streamer.h (lto_section_overrun, lto_append_block): Declare. (lto_output_1_stream, lto_input_1_unsigned): Turn into inline functions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@173247 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/lto-streamer.h | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'gcc/lto-streamer.h') diff --git a/gcc/lto-streamer.h b/gcc/lto-streamer.h index 5d1f15a783e..4fe8f513a33 100644 --- a/gcc/lto-streamer.h +++ b/gcc/lto-streamer.h @@ -758,7 +758,6 @@ extern const char *lto_get_section_data (struct lto_file_decl_data *, extern void lto_free_section_data (struct lto_file_decl_data *, enum lto_section_type, const char *, const char *, size_t); -extern unsigned char lto_input_1_unsigned (struct lto_input_block *); extern unsigned HOST_WIDE_INT lto_input_uleb128 (struct lto_input_block *); extern unsigned HOST_WIDEST_INT lto_input_widest_uint_uleb128 ( struct lto_input_block *); @@ -774,6 +773,7 @@ extern hashval_t lto_hash_in_decl_state (const void *); extern int lto_eq_in_decl_state (const void *, const void *); extern struct lto_in_decl_state *lto_get_function_in_decl_state ( struct lto_file_decl_data *, tree); +extern void lto_section_overrun (struct lto_input_block *) ATTRIBUTE_NORETURN; /* In lto-section-out.c */ extern hashval_t lto_hash_decl_slot_node (const void *); @@ -783,7 +783,6 @@ extern int lto_eq_type_slot_node (const void *, const void *); extern void lto_begin_section (const char *, bool); extern void lto_end_section (void); extern void lto_write_stream (struct lto_output_stream *); -extern void lto_output_1_stream (struct lto_output_stream *, char); extern void lto_output_data_stream (struct lto_output_stream *, const void *, size_t); extern void lto_output_uleb128_stream (struct lto_output_stream *, @@ -817,6 +816,7 @@ extern void lto_push_out_decl_state (struct lto_out_decl_state *); extern struct lto_out_decl_state *lto_pop_out_decl_state (void); extern void lto_record_function_out_decl_state (tree, struct lto_out_decl_state *); +extern void lto_append_block (struct lto_output_stream *); /* In lto-streamer.c. */ @@ -1174,4 +1174,32 @@ bp_unpack_value (struct bitpack_d *bp, unsigned nbits) return val & mask; } + +/* Write a character to the output block. */ + +static inline void +lto_output_1_stream (struct lto_output_stream *obs, char c) +{ + /* No space left. */ + if (obs->left_in_block == 0) + lto_append_block (obs); + + /* Write the actual character. */ + *obs->current_pointer = c; + obs->current_pointer++; + obs->total_size++; + obs->left_in_block--; +} + + +/* Read byte from the input block. */ + +static inline unsigned char +lto_input_1_unsigned (struct lto_input_block *ib) +{ + if (ib->p >= ib->len) + lto_section_overrun (ib); + return (ib->data[ib->p++]); +} + #endif /* GCC_LTO_STREAMER_H */ -- cgit v1.2.1