diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-08-03 09:17:28 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-08-03 09:17:28 +0000 |
commit | 132f079abbcfa82c414832aad3aedfe77f2049f6 (patch) | |
tree | 2f36ebbabd6d8f0da8f9326f7c1404ccfd4d24e2 /gcc/ada/prj.ads | |
parent | 1ae09faf95d176592771bfea4c47aee3fa3645be (diff) | |
download | gcc-132f079abbcfa82c414832aad3aedfe77f2049f6.tar.gz |
2011-08-03 Yannick Moy <moy@adacore.com>
* sem_ch6.adb (New_Overloaded_Entity): only issue error for SPARK
restriction on overloaded entity if the entity is not an operator.
2011-08-03 Yannick Moy <moy@adacore.com>
* sem_ch7.adb, sem_res.adb, sem_attr.adb, restrict.adb,
restrict.ads: Rename remaining Check_Formal_Restriction* into
Check_SPARK_Restriction*.
2011-08-03 Emmanuel Briot <briot@adacore.com>
* prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-nmsc.adb,
prj-nmsc.ads, prj-err.adb (Project_Data): now discriminated on its
qualifier.
(Project_Empty): removed
(Empty_Project): new parameter Qualifier
This is used to have fields specific to aggregate projects, cleaner
New field to store the list of aggregated projects.
(Check_Aggregate_Project): removed
(Process_Aggregated_Projects, Free): new subprograms.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177243 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/prj.ads')
-rw-r--r-- | gcc/ada/prj.ads | 57 |
1 files changed, 46 insertions, 11 deletions
diff --git a/gcc/ada/prj.ads b/gcc/ada/prj.ads index 202e70aeca9..db53aa08155 100644 --- a/gcc/ada/prj.ads +++ b/gcc/ada/prj.ads @@ -1086,13 +1086,34 @@ package Prj is Lib_Maj_Min_Id_Supported => False, Auto_Init_Supported => False); - -- The following record describes a project file representation + ------------------------- + -- Aggregated projects -- + ------------------------- + + type Aggregated_Project; + type Aggregated_Project_List is access all Aggregated_Project; + type Aggregated_Project is record + Path : Path_Name_Type; + Project : Project_Id; + Next : Aggregated_Project_List; + end record; + + procedure Free (List : in out Aggregated_Project_List); + -- Free the memory used for List - -- Note that it is not specified if the path names of directories (source, - -- object, library or exec directories) end with or without a directory - -- separator. + procedure Add_Aggregated_Project + (Project : Project_Id; Path : Path_Name_Type); + -- Add a new aggregated project in Project. + -- The aggregated project has not been processed yet. This procedure should + -- the called while processing the aggregate project, and as a result + -- Prj.Proc.Process will then automatically process the aggregated projects - type Project_Data is record + ------------------ + -- Project_Data -- + ------------------ + -- The following record describes a project file representation + + type Project_Data (Qualifier : Project_Qualifier := Unspecified) is record ------------- -- General -- @@ -1104,9 +1125,6 @@ package Prj is Display_Name : Name_Id := No_Name; -- The name of the project with the spelling of its declaration - Qualifier : Project_Qualifier := Unspecified; - -- The eventual qualifier for this project - Externally_Built : Boolean := False; -- True if the project is externally built. In such case, the Project -- Manager will not modify anything in this project. @@ -1152,10 +1170,10 @@ package Prj is -- The declarations (variables, attributes and packages) of this project -- file. - Imported_Projects : Project_List; + Imported_Projects : Project_List := null; -- The list of all directly imported projects, if any - All_Imported_Projects : Project_List; + All_Imported_Projects : Project_List := null; -- The list of all projects imported directly or indirectly, if any. -- This does not include the project itself. @@ -1295,9 +1313,21 @@ package Prj is -- True if there are comments in the project sources that cannot be kept -- in the project tree. + ----------------------------- + -- qualifier-specific data -- + ----------------------------- + -- The following fields are only valid for specific types of projects. + + case Qualifier is + when Aggregate => + Aggregated_Projects : Aggregated_Project_List := null; + + when others => + null; + end case; end record; - function Empty_Project return Project_Data; + function Empty_Project (Qualifier : Project_Qualifier) return Project_Data; -- Return the representation of an empty project function Is_Extending @@ -1432,6 +1462,7 @@ package Prj is procedure For_Every_Project_Imported (By : Project_Id; With_State : in out State; + Include_Aggregated : Boolean := True; Imported_First : Boolean := False); -- Call Action for each project imported directly or indirectly by project -- By, as well as extended projects. @@ -1448,6 +1479,10 @@ package Prj is -- -- With_State may be used by Action to choose a behavior or to report some -- global result. + -- + -- If Include_Aggregated is True, then an aggregate project will recurse + -- into the projects it aggregates. Otherwise, the latter are never + -- returned function Extend_Name (File : File_Name_Type; |