This change prevents Put_SCOs from emitting a spurious blank line in the
ALI file in case the length of a statements line is congruent to 0 modulo 6.
The following compilation must not produce any blank line in the middle of
C lines.
$ gcc -c -gnateS blank_line_in_scos.adb
package Blank_Line_In_SCOs is
package Nest1 is
X : Integer;
end Nest1;
procedure Pr;
pragma Precondition (True);
package Nest2 is
Y : Integer;
end Nest2;
package Nest3 is
X1 : Integer;
X2 : Integer;
X3 : Integer;
X4 : Integer;
X5 : Integer;
X6 : Integer;
end Nest3;
package Nest4 is
Z : Integer;
end Nest4;
end Blank_Line_In_SCOs;
package body Blank_Line_In_SCOs is
procedure Pr is begin null; end;
end Blank_Line_In_SCOs;
Tested on x86_64-pc-linux-gnu, committed on trunk
2011-08-29 Thomas Quinot <[email protected]>
* put_scos.adb (Put_SCOs): Do not emit a newline for an empty
statements line.
Index: put_scos.adb
===================================================================
--- put_scos.adb (revision 178164)
+++ put_scos.adb (working copy)
@@ -178,7 +178,9 @@
pragma Assert (SCO_Table.Table (Start).C1 = 's');
end loop;
- Write_Info_Terminate;
+ if Ctr > 0 then
+ Write_Info_Terminate;
+ end if;
-- Statement continuations should not occur since they
-- are supposed to have been handled in the loop above.