From: Ghjuvan Lacambre <lacam...@adacore.com> Before this commit, when GNAT needed to emit lines longer than the buffer, it accidentally inserted a newline in its output when attempting to flush its buffer.
We fix this by using Flush_Buffer instead of Write_Eol in Write_Char. gcc/ada/ * output.adb (Write_Buffer): Use Flush_Buffer instead of Write_Eol. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/output.adb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/ada/output.adb b/gcc/ada/output.adb index 33d027ded8e..497643d17ec 100644 --- a/gcc/ada/output.adb +++ b/gcc/ada/output.adb @@ -422,10 +422,10 @@ package body Output is procedure Write_Char (C : Character) is begin - pragma Assert (Next_Col in Buffer'Range); - if Next_Col = Buffer'Length then - Write_Eol; + if Next_Col > Buffer'Length then + Flush_Buffer; end if; + pragma Assert (Next_Col in Buffer'Range); if C = ASCII.LF then Write_Eol; -- 2.34.1