summaryrefslogtreecommitdiff
path: root/gcc/ada/makeutl.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2008-05-27 09:20:48 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2008-05-27 09:20:48 +0000
commitc1fda027fd93acb66b8637b108f55696dfde112d (patch)
tree3286f3d46f1e7b1e3c1193c922a2d0214a182218 /gcc/ada/makeutl.adb
parent9e2be923625a8976333c461f4986e5e6a6e6bc26 (diff)
downloadgcc-c1fda027fd93acb66b8637b108f55696dfde112d.tar.gz
2008-05-27 Vincent Celier <celier@adacore.com>
* makeutl.ads, makeutl.adb: (Set_Location): New procedure (Get_Location): New function (Update_Main): New procedure git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@135993 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/makeutl.adb')
-rw-r--r--gcc/ada/makeutl.adb48
1 files changed, 45 insertions, 3 deletions
diff --git a/gcc/ada/makeutl.adb b/gcc/ada/makeutl.adb
index 63b975c36f6..71e207a55f8 100644
--- a/gcc/ada/makeutl.adb
+++ b/gcc/ada/makeutl.adb
@@ -481,8 +481,13 @@ package body Makeutl is
package body Mains is
+ type File_And_Loc is record
+ File_Name : File_Name_Type;
+ Location : Source_Ptr := No_Location;
+ end record;
+
package Names is new Table.Table
- (Table_Component_Type => File_Name_Type,
+ (Table_Component_Type => File_And_Loc,
Table_Index_Type => Integer,
Table_Low_Bound => 1,
Table_Initial => 10,
@@ -502,7 +507,7 @@ package body Makeutl is
Name_Len := 0;
Add_Str_To_Name_Buffer (Name);
Names.Increment_Last;
- Names.Table (Names.Last) := Name_Find;
+ Names.Table (Names.Last) := (Name_Find, No_Location);
end Add_Main;
------------
@@ -515,6 +520,20 @@ package body Makeutl is
Mains.Reset;
end Delete;
+ ------------------
+ -- Get_Location --
+ ------------------
+
+ function Get_Location return Source_Ptr is
+ begin
+ if Current < Names.First or else Current > Names.Last then
+ return No_Location;
+
+ else
+ return Names.Table (Current).Location;
+ end if;
+ end Get_Location;
+
---------------
-- Next_Main --
---------------
@@ -526,7 +545,7 @@ package body Makeutl is
else
Current := Current + 1;
- return Get_Name_String (Names.Table (Current));
+ return Get_Name_String (Names.Table (Current).File_Name);
end if;
end Next_Main;
@@ -548,6 +567,29 @@ package body Makeutl is
Current := 0;
end Reset;
+ ------------------
+ -- Set_Location --
+ ------------------
+
+ procedure Set_Location (Location : Source_Ptr) is
+ begin
+ if Names.Last > 0 then
+ Names.Table (Names.Last).Location := Location;
+ end if;
+ end Set_Location;
+
+ -----------------
+ -- Update_Main --
+ -----------------
+
+ procedure Update_Main (Name : String) is
+ begin
+ if Current >= Names.First and then Current <= Names.Last then
+ Name_Len := 0;
+ Add_Str_To_Name_Buffer (Name);
+ Names.Table (Current).File_Name := Name_Find;
+ end if;
+ end Update_Main;
end Mains;
----------