summaryrefslogtreecommitdiff
path: root/gcc/ada/prj-part.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/prj-part.adb')
-rw-r--r--gcc/ada/prj-part.adb16
1 files changed, 13 insertions, 3 deletions
diff --git a/gcc/ada/prj-part.adb b/gcc/ada/prj-part.adb
index 8e9f963390a..938d394b42a 100644
--- a/gcc/ada/prj-part.adb
+++ b/gcc/ada/prj-part.adb
@@ -78,7 +78,7 @@ package body Prj.Part is
Table_Index_Type => With_Id,
Table_Low_Bound => 1,
Table_Initial => 10,
- Table_Increment => 50,
+ Table_Increment => 100,
Table_Name => "Prj.Part.Withs");
-- Table used to store temporarily paths and locations of imported
-- projects. These imported projects will be effectively parsed after the
@@ -95,7 +95,7 @@ package body Prj.Part is
Table_Index_Type => Nat,
Table_Low_Bound => 1,
Table_Initial => 10,
- Table_Increment => 50,
+ Table_Increment => 100,
Table_Name => "Prj.Part.Project_Stack");
-- This table is used to detect circular dependencies
-- for imported and extended projects and to get the project ids of
@@ -459,7 +459,15 @@ package body Prj.Part is
Current_Directory : constant String := Get_Current_Dir;
Dummy : Boolean;
+ Real_Project_File_Name : String_Access :=
+ Osint.To_Canonical_File_Spec
+ (Project_File_Name);
+
begin
+ if Real_Project_File_Name = null then
+ Real_Project_File_Name := new String'(Project_File_Name);
+ end if;
+
Project := Empty_Node;
if Current_Verbosity >= Medium then
@@ -470,10 +478,12 @@ package body Prj.Part is
declare
Path_Name : constant String :=
- Project_Path_Name_Of (Project_File_Name,
+ Project_Path_Name_Of (Real_Project_File_Name.all,
Directory => Current_Directory);
begin
+ Free (Real_Project_File_Name);
+
Prj.Err.Initialize;
Prj.Err.Scanner.Set_Comment_As_Token (Store_Comments);
Prj.Err.Scanner.Set_End_Of_Line_As_Token (Store_Comments);