diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-07-30 17:04:20 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2014-07-30 17:04:20 +0200 |
commit | 3ea8f61e9fcdc8e9b558d5c03cafdec439de0147 (patch) | |
tree | 4560aa9d82c0431860eaac87d1813336b4077893 | |
parent | 976d5a222fc23279e239ad926472c7810869e494 (diff) | |
download | gcc-3ea8f61e9fcdc8e9b558d5c03cafdec439de0147.zip gcc-3ea8f61e9fcdc8e9b558d5c03cafdec439de0147.tar.gz gcc-3ea8f61e9fcdc8e9b558d5c03cafdec439de0147.tar.bz2 |
[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
-rw-r--r-- | gcc/ada/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/ada/makeutl.adb | 72 | ||||
-rw-r--r-- | gcc/ada/sem_util.adb | 2 |
3 files changed, 58 insertions, 27 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 0ec4d21..2efa3d6 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -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. diff --git a/gcc/ada/makeutl.adb b/gcc/ada/makeutl.adb index 88826c7..a53ab59 100644 --- a/gcc/ada/makeutl.adb +++ b/gcc/ada/makeutl.adb @@ -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 diff --git a/gcc/ada/sem_util.adb b/gcc/ada/sem_util.adb index 9759a62..af04384 100644 --- a/gcc/ada/sem_util.adb +++ b/gcc/ada/sem_util.adb @@ -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)) |