Created attachment 8444 [details]
Sample source code for that GNU as segfaults.
For following code the GNU as segfaults:
.endm << end of line
this code have only three lines, where last line is not ended by newline.
GNU as prints messages:
irptest.s: Assembler messages:
irptest.s:3: Warning: partial line at end of file ignored
irptest.s:1: Error: unexpected end of file in macro `xv' definition
This same problem has been encountered for that code:
.irp Xv, aaaa
.endr << end of line
Likewise, that code have line that is not ended by newline.
I forgot about one:
segfault encountered when last line is not terminated by newline and it have spaces at end. An attachment contains that last line.
The master branch has been updated by Alan Modra <firstname.lastname@example.org>:
Author: Alan Modra <email@example.com>
Date: Wed Jul 22 21:58:50 2015 +0930
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.
* 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.