diff options
author | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-05-02 12:37:13 +0000 |
---|---|---|
committer | hubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-05-02 12:37:13 +0000 |
commit | 673ca05f187ae8180b4149e16022f28187e076f4 (patch) | |
tree | 2680cf7b12422f82aa3a8f4513c70dc9d5e3692d /gcc/lto-streamer.h | |
parent | a32d549f699927e32207fb725189ddbb9777b2de (diff) | |
download | gcc-673ca05f187ae8180b4149e16022f28187e076f4.tar.gz |
* 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
Diffstat (limited to 'gcc/lto-streamer.h')
-rw-r--r-- | gcc/lto-streamer.h | 32 |
1 files changed, 30 insertions, 2 deletions
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 */ |