Avoid setting or recording negative alignments when the target stores multiple octets...
authorDan Gisselquist <dgisselq@verizon.net>
Thu, 18 Feb 2016 09:47:31 +0000 (09:47 +0000)
committerNick Clifton <nickc@redhat.com>
Thu, 18 Feb 2016 09:49:04 +0000 (09:49 +0000)
commit9136aa49abcb3f23171e01ebd16ee03cc1032943
treee1267f52546b36fca957fdba4bae52e55a5d15f2
parent0748bf3e5804e9a93c788ffba95473168a4397f6
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.
gas/ChangeLog
gas/read.c
gas/read.h
gas/write.c
gas/write.h