+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.
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
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))