aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/ali.ads
diff options
context:
space:
mode:
authorRobert Dewar <dewar@adacore.com>2010-06-14 13:01:07 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2010-06-14 15:01:07 +0200
commit7eaa7cdf7da806ba900237e34eb11fd580039da3 (patch)
tree098473a5e47938dcfa8b53ff687d42c7e5548626 /gcc/ada/ali.ads
parent3a13e78582d1be59cd9e5ecb24f8f1c355261648 (diff)
downloadgcc-7eaa7cdf7da806ba900237e34eb11fd580039da3.zip
gcc-7eaa7cdf7da806ba900237e34eb11fd580039da3.tar.gz
gcc-7eaa7cdf7da806ba900237e34eb11fd580039da3.tar.bz2
ali.adb (Scan_ALI): Implement reading and storing of N lines
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 From-SVN: r160736
Diffstat (limited to 'gcc/ada/ali.ads')
-rw-r--r--gcc/ada/ali.ads40
1 files changed, 38 insertions, 2 deletions
diff --git a/gcc/ada/ali.ads b/gcc/ada/ali.ads
index 94f7647..9056ce5 100644
--- a/gcc/ada/ali.ads
+++ b/gcc/ada/ali.ads
@@ -605,8 +605,6 @@ package ALI is
-- table.
end record;
- -- Declare the Linker_Options Table
-
-- The indexes of active entries in this table range from 1 to the
-- value of Linker_Options.Last. The zero'th element is for sort call.
@@ -618,6 +616,44 @@ package ALI is
Table_Increment => 400,
Table_Name => "Linker_Options");
+ -----------------
+ -- Notes Table --
+ -----------------
+
+ -- The notes table records entries from N lines
+
+ type Notes_Record is record
+ Pragma_Type : Character;
+ -- 'A', 'C', 'I', 'S', 'T' for Annotate/Comment/Ident/Subtitle/Title
+
+ Pragma_Line : Nat;
+ -- Line number of pragma
+
+ Pragma_Col : Nat;
+ -- Column number of pragma
+
+ Unit : Unit_Id;
+ -- Unit_Id for the entry
+
+ Pragma_Args : Name_Id;
+ -- Pragma arguments. No_Name if no arguments, otherwise a single
+ -- name table entry consisting of all the characters on the notes
+ -- line from the first non-blank character following the source
+ -- location to the last character on the line.
+ end record;
+
+ -- The indexes of active entries in this table range from 1 to the
+ -- value of Linker_Options.Last. The zero'th element is for convenience
+ -- if the table needs to be sorted.
+
+ package Notes is new Table.Table (
+ Table_Component_Type => Notes_Record,
+ Table_Index_Type => Integer,
+ Table_Low_Bound => 0,
+ Table_Initial => 200,
+ Table_Increment => 400,
+ Table_Name => "Notes");
+
-------------------------------------------
-- External Version Reference Hash Table --
-------------------------------------------