This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Ada] Implement notes lines in ALI file


This patch generates notes lines in the ALI file for occurrences of
any of the pragmas Annotate/Comment/Ident/Subtitle/Title. These are
used by external tools such as couverture (which uses the Annotate
entries to control temporary disabling of coverage).

The following test program:

package notes is
   pragma Comment ("this is a comment");
   procedure notes1 (N : Integer);
end notes;

package body notes is
   pragma Title (Title => "this is a title");
   procedure notes1 (N : Integer) is
   begin
      pragma Annotate (Coverage, Deactivate, 12, "string", N + 1);
      null;
   end;
end;

generates three N lines in the ali file, one each for the pragmas
Comment, Title, Annotate in the above test program

Tested on x86_64-pc-linux-gnu, committed on trunk

2010-06-14  Robert Dewar  <dewar@adacore.com>

	* ali.adb (Scan_ALI): Implement reading and storing of N lines
	(Known_ALI_Lines): Add entry for 'N' (notes)
	* ali.ads (Notes): New table to store Notes information
	* alloc.ads: Add entries for Notes table
	* lib-util.adb (Write_Info_Int): New procedure
	(Write_Info_Slit): New procedure
	(Write_Info_Uint): New procedure
	* lib-util.ads (Write_Info_Int): New procedure
	(Write_Info_Slit): New procedure
	(Write_Info_Uint): New procedure
	* lib-writ.adb (Write_Unit_Information): Output N (notes) lines
	* lib-writ.ads: Update documentation for N (Notes) lines
	* lib.adb (Store_Note): New procedure
	* lib.ads (Notes): New table
	(Store_Note): New procedure
	* sem_prag.adb: Call Store_Note for affected pragmas

Attachment: difs
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]