From: Arnaud Charlet Date: Wed, 30 Jul 2014 15:04:20 +0000 (+0200) Subject: [multiple changes] X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3ea8f61e9fcdc8e9b558d5c03cafdec439de0147;p=gcc.git [multiple changes] 2014-07-30 Vincent Celier * 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 * sem_util.adb: Fix minor typo. * makeutl.adb: Minor reformatting. From-SVN: r213294 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 0ec4d21f016..2efa3d69644 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,14 @@ +2014-07-30 Vincent Celier + + * 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 + + * sem_util.adb: Fix minor typo. + * makeutl.adb: Minor reformatting. + 2014-07-30 Robert Dewar * exp_ch7.adb, checks.adb, makeutl.adb, makeutl.ads: Minor reformatting. diff --git a/gcc/ada/makeutl.adb b/gcc/ada/makeutl.adb index 88826c73af8..a53ab590b5b 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 9759a623684..af04384cc93 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))