gas line buffer handling
authorAlan Modra <amodra@gmail.com>
Wed, 22 Jul 2015 12:28:50 +0000 (21:58 +0930)
committerAlan Modra <amodra@gmail.com>
Wed, 22 Jul 2015 12:34:28 +0000 (22:04 +0930)
commit511b1657d2b251e529a7a0634325bb7d8f3af80d
tree85f87f4c5a71ab622a62b7e61bebc6d8d0b6c720
parent5b2af7dd40a4f3b570aef71daf11b9dfce9a5d13
gas line buffer handling

This fixes a segfault when macro definitions end on the last line of a
file, and that line isn't properly terminated with a newline.  gas
used to throw away the last line in cases like this, whereas in other
cases gas added the missing newline.  So I've also made gas
consistently provide a missing newline.

PR gas/18687
* input-scrub.c (input_scrub_next_buffer): Rearrange and simplify
loop.  Don't drop lines at end of file lacking a newline, add a
newline instead.  Ensure partial_size is zero whenever
partial_where is NULL.  Adjust buffer size for extra char.
(input_scrub_push, input_scrub_begin): Adjust buffer size here too.
gas/ChangeLog
gas/input-scrub.c