prj-part.adb (Parse_Single_Project): Call Is_Extending_All (Extended_Project) only if Extended_Project is defined...
2004-10-04 Vincent Celier <celier@gnat.com> * prj-part.adb (Parse_Single_Project): Call Is_Extending_All (Extended_Project) only if Extended_Project is defined, to avoid assertion error. (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a resolved path. (Parse_Single_Project): Ditto. * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call Add_To_Project_Path for virtual projects. From-SVN: r88491
This commit is contained in:
parent
51004cb583
commit
9a080ea346
|
@ -1,3 +1,15 @@
|
|||
2004-10-04 Vincent Celier <celier@gnat.com>
|
||||
|
||||
* prj-part.adb (Parse_Single_Project): Call Is_Extending_All
|
||||
(Extended_Project) only if Extended_Project is defined, to avoid
|
||||
assertion error.
|
||||
(Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
|
||||
resolved path.
|
||||
(Parse_Single_Project): Ditto.
|
||||
|
||||
* prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
|
||||
Add_To_Project_Path for virtual projects.
|
||||
|
||||
2004-10-04 Vincent Celier <celier@gnat.com>
|
||||
|
||||
* mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
|
||||
|
|
|
@ -1970,10 +1970,10 @@ package body Prj.Env is
|
|||
if Data.Library then
|
||||
Add_To_Object_Path (Data.Library_Dir);
|
||||
|
||||
else
|
||||
-- For a non library project, add the object
|
||||
-- directory.
|
||||
-- For a non-library project, add the object
|
||||
-- directory, if it is not a virtual project.
|
||||
|
||||
elsif not Data.Virtual then
|
||||
Add_To_Object_Path (Data.Object_Directory);
|
||||
end if;
|
||||
end if;
|
||||
|
|
|
@ -707,6 +707,12 @@ package body Prj.Part is
|
|||
(Original_Path,
|
||||
Project_Directory_Path);
|
||||
|
||||
Resolved_Path : constant String :=
|
||||
Normalize_Pathname
|
||||
(Imported_Path_Name,
|
||||
Resolve_Links => True,
|
||||
Case_Sensitive => False);
|
||||
|
||||
Withed_Project : Project_Node_Id := Empty_Node;
|
||||
|
||||
begin
|
||||
|
@ -750,21 +756,17 @@ package body Prj.Part is
|
|||
(Current_Project, Current_With.Path);
|
||||
Set_Location_Of (Current_Project, Current_With.Location);
|
||||
|
||||
-- If this is a "limited with", check if we have
|
||||
-- a circularity; if we have one, get the project id
|
||||
-- of the limited imported project file, and don't
|
||||
-- parse it.
|
||||
-- If this is a "limited with", check if we have a circularity.
|
||||
-- If we have one, get the project id of the limited imported
|
||||
-- project file, and do not parse it.
|
||||
|
||||
if Limited_With and then Project_Stack.Last > 1 then
|
||||
declare
|
||||
Normed : constant String :=
|
||||
Normalize_Pathname (Imported_Path_Name);
|
||||
Canonical_Path_Name : Name_Id;
|
||||
|
||||
begin
|
||||
Name_Len := Normed'Length;
|
||||
Name_Buffer (1 .. Name_Len) := Normed;
|
||||
Canonical_Case_File_Name (Name_Buffer (1 .. Name_Len));
|
||||
Name_Len := Resolved_Path'Length;
|
||||
Name_Buffer (1 .. Name_Len) := Resolved_Path;
|
||||
Canonical_Path_Name := Name_Find;
|
||||
|
||||
for Index in 1 .. Project_Stack.Last loop
|
||||
|
@ -818,8 +820,9 @@ package body Prj.Part is
|
|||
To => Withed_Project,
|
||||
Limited_With => Limited_With);
|
||||
Set_Name_Of (Current_Project, Name_Of (Withed_Project));
|
||||
Name_Len := Imported_Path_Name'Length;
|
||||
Name_Buffer (1 .. Name_Len) := Imported_Path_Name;
|
||||
|
||||
Name_Len := Resolved_Path'Length;
|
||||
Name_Buffer (1 .. Name_Len) := Resolved_Path;
|
||||
Set_Path_Name_Of (Current_Project, Name_Find);
|
||||
|
||||
if Extends_All then
|
||||
|
@ -1038,7 +1041,7 @@ package body Prj.Part is
|
|||
Project := Default_Project_Node (Of_Kind => N_Project);
|
||||
Project_Stack.Table (Project_Stack.Last).Id := Project;
|
||||
Set_Directory_Of (Project, Project_Directory);
|
||||
Set_Path_Name_Of (Project, Normed_Path_Name);
|
||||
Set_Path_Name_Of (Project, Canonical_Path_Name);
|
||||
Set_Location_Of (Project, Token_Ptr);
|
||||
|
||||
Expect (Tok_Project, "PROJECT");
|
||||
|
@ -1271,7 +1274,9 @@ package body Prj.Part is
|
|||
-- A project that extends an extending-all project is also
|
||||
-- an extending-all project.
|
||||
|
||||
if Is_Extending_All (Extended_Project) then
|
||||
if Extended_Project /= Empty_Node
|
||||
and then Is_Extending_All (Extended_Project)
|
||||
then
|
||||
Set_Is_Extending_All (Project);
|
||||
end if;
|
||||
end if;
|
||||
|
|
Loading…
Reference in New Issue