[multiple changes]

2014-07-30  Vincent Celier  <celier@adacore.com>

	* makeutl.adb (Insert_Project_Sources): When the library project
	is an aggregate Stand-Alone Library, insert in the queue the
	Ada interface units, with Closure set to True;

2014-07-30  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_util.adb: Fix minor typo.
	* makeutl.adb: Minor reformatting.

From-SVN: r213294
This commit is contained in:
Arnaud Charlet 2014-07-30 17:04:20 +02:00
parent 976d5a222f
commit 3ea8f61e9f
3 changed files with 58 additions and 27 deletions

View file

@ -1,3 +1,14 @@
2014-07-30 Vincent Celier <celier@adacore.com>
* makeutl.adb (Insert_Project_Sources): When the library project
is an aggregate Stand-Alone Library, insert in the queue the
Ada interface units, with Closure set to True;
2014-07-30 Eric Botcazou <ebotcazou@adacore.com>
* sem_util.adb: Fix minor typo.
* makeutl.adb: Minor reformatting.
2014-07-30 Robert Dewar <dewar@adacore.com>
* exp_ch7.adb, checks.adb, makeutl.adb, makeutl.ads: Minor reformatting.

View file

@ -2969,41 +2969,61 @@ package body Makeutl is
then
if (Unit_Based
or else Source.Unit = No_Unit_Index
or else Source.Project.Library)
or else Source.Project.Library
or else Project.Qualifier = Aggregate_Library)
and then not Is_Subunit (Source)
then
OK := True;
Closure := False;
if Source.Unit /= No_Unit_Index
and then Source.Project.Library
and then Source.Project.Standalone_Library /= No
then
-- Check if the unit is in the interface
OK := False;
declare
SAL_Project : Project_Id := No_Project;
declare
List : String_List_Id :=
Source.Project.Lib_Interface_ALIs;
Element : String_Element;
begin
if Project.Qualifier = Aggregate_Library
and then Project.Standalone_Library /= No
then
if Source.Unit /= No_Unit_Index then
SAL_Project := Project;
end if;
begin
while List /= Nil_String loop
Element :=
Project_Tree.Shared.String_Elements.Table
(List);
elsif Source.Unit /= No_Unit_Index
and then Source.Project.Library
and then Source.Project.Standalone_Library /= No
then
SAL_Project := Source.Project;
end if;
if Element.Value = Name_Id (Source.Dep_Name)
then
OK := True;
Closure := True;
exit;
end if;
if SAL_Project /= No_Project then
List := Element.Next;
end loop;
end;
end if;
-- Check if the unit is in the interface
OK := False;
declare
List : String_List_Id :=
SAL_Project.Lib_Interface_ALIs;
Element : String_Element;
begin
while List /= Nil_String loop
Element :=
Project_Tree.Shared.String_Elements.Table
(List);
if Element.Value =
Name_Id (Source.Dep_Name)
then
OK := True;
Closure := True;
exit;
end if;
List := Element.Next;
end loop;
end;
end if;
end;
if OK then
Queue.Insert

View file

@ -16001,7 +16001,7 @@ package body Sem_Util is
elsif Is_Scalar_Type (T) then
-- If the subrange bounds are materialized by dedicated constant
-- objects, also include them to the debug info to make sure the
-- objects, also include them in the debug info to make sure the
-- debugger can properly use them.
if Present (Scalar_Range (T))