diff options
author | Dan Gisselquist <dgisselq@verizon.net> | 2016-02-18 09:47:31 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2016-02-18 09:49:04 +0000 |
commit | 9136aa49abcb3f23171e01ebd16ee03cc1032943 (patch) | |
tree | e1267f52546b36fca957fdba4bae52e55a5d15f2 /gas/read.h | |
parent | 0748bf3e5804e9a93c788ffba95473168a4397f6 (diff) | |
download | gdb-9136aa49abcb3f23171e01ebd16ee03cc1032943.zip gdb-9136aa49abcb3f23171e01ebd16ee03cc1032943.tar.gz gdb-9136aa49abcb3f23171e01ebd16ee03cc1032943.tar.bz2 |
Avoid setting or recording negative alignments when the target stores multiple octets in a single byte.
gas * read.c (finish_bundle): Avoid recording a negative alignment.
(do_align): Use unsigned values for n, len and max. Only create
a frag if the alignment requirement is greater than the minimum
byte alignment. Avoid recording a negative alignment.
(s_align): Use unsigned values where appropriate.
(bss_alloc): Use an unsigned value for the alignment.
(sizeof_sleb128): Add a comment noting that we encode one octet
per byte, regardless of the value of OCTETS_PER_BYTE_POWER.
(emit_leb129_expr): Abort if the emitted encoding was longer than
expected.
* read.h (output_leb128): Update prototype.
(sizeof_leb128): Update prototype.
(bss_alloc): Update prototype.
* write.c (record_alignment): Use an unsigned value for the
alignment. Do not record alignments less than the minimum
alignment for a byte.
* write.h (record_alignment): Update prototype.
Diffstat (limited to 'gas/read.h')
-rw-r--r-- | gas/read.h | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -128,17 +128,17 @@ extern void emit_expr_with_reloc (expressionS *exp, unsigned int nbytes, TC_PARSE_CONS_RETURN_TYPE); extern void emit_expr_fix (expressionS *, unsigned int, fragS *, char *, TC_PARSE_CONS_RETURN_TYPE); -extern void equals (char *sym_name, int reassign); -extern void float_cons (int float_type); +extern void equals (char *, int); +extern void float_cons (int); extern void ignore_rest_of_line (void); #define discard_rest_of_line ignore_rest_of_line -extern int output_leb128 (char *, valueT, int sign); +extern unsigned output_leb128 (char *, valueT, int); extern void pseudo_set (symbolS * symbolP); extern void read_a_source_file (char *name); extern void read_begin (void); extern void read_print_statistics (FILE *); extern char *read_symbol_name (void); -extern int sizeof_leb128 (valueT, int sign); +extern unsigned sizeof_leb128 (valueT, int); extern void stabs_generate_asm_file (void); extern void stabs_generate_asm_lineno (void); extern void stabs_generate_asm_func (const char *, const char *); @@ -153,7 +153,7 @@ extern void generate_lineno_debug (void); extern void s_abort (int) ATTRIBUTE_NORETURN; extern void s_align_bytes (int arg); extern void s_align_ptwo (int); -extern void bss_alloc (symbolS *, addressT, int); +extern void bss_alloc (symbolS *, addressT, unsigned); extern offsetT parse_align (int); extern symbolS *s_comm_internal (int, symbolS *(*) (int, symbolS *, addressT)); extern symbolS *s_lcomm_internal (int, symbolS *, addressT); |