2014-07-30 Vincent Celier <celier@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 30 Jul 2014 15:04:20 +0000 (15:04 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 30 Jul 2014 15:04:20 +0000 (15:04 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@213294 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/ChangeLog
gcc/ada/makeutl.adb
gcc/ada/sem_util.adb

index 0ec4d21..2efa3d6 100644 (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.
index 88826c7..a53ab59 100644 (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
index 9759a62..af04384 100644 (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))