From 23cc1ace574efc73dc4bbe8d99013272e19832e1 Mon Sep 17 00:00:00 2001 From: Emmanuel Briot Date: Thu, 4 Aug 2011 13:00:35 +0000 Subject: [PATCH] makeutl.adb (Compute_Builder_Switches): no longer accept a unit name as an index for Builder'Switches. 2011-08-04 Emmanuel Briot * makeutl.adb (Compute_Builder_Switches): no longer accept a unit name as an index for Builder'Switches. This conforms to the documentation. * make.adb (Insert_Project_Sources): avoid duplicate code From-SVN: r177375 --- gcc/ada/ChangeLog | 6 ++++++ gcc/ada/make.adb | 47 +++++++++------------------------------------ gcc/ada/makeutl.adb | 19 ++---------------- 3 files changed, 17 insertions(+), 55 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index da4cc103f9c..aa81ae63900 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,9 @@ +2011-08-04 Emmanuel Briot + + * makeutl.adb (Compute_Builder_Switches): no longer accept a unit name + as an index for Builder'Switches. This conforms to the documentation. + * make.adb (Insert_Project_Sources): avoid duplicate code + 2011-08-04 Emmanuel Briot * makeutl.adb (Complete_Mains): if the user has passed a relative file diff --git a/gcc/ada/make.adb b/gcc/ada/make.adb index d450648e8a6..6d1eaa5e54a 100644 --- a/gcc/ada/make.adb +++ b/gcc/ada/make.adb @@ -5831,7 +5831,7 @@ package body Make is -- Get the first executable. -- ??? This needs to be done early, because Osint.Next_Main_File also - -- initializes the primary search directory, used below to initiliaze + -- initializes the primary search directory, used below to initialize -- the "-I" parameter Main_Source_File := Next_Main_Source; -- No directory information @@ -6610,41 +6610,6 @@ package body Make is Index : Int; Project : Project_Id; - Extending : constant Boolean := The_Project.Extends /= No_Project; - - function Check_Project (P : Project_Id) return Boolean; - -- Returns True if P is The_Project or a project extended by The_Project - - ------------------- - -- Check_Project -- - ------------------- - - function Check_Project (P : Project_Id) return Boolean is - begin - if All_Projects or else P = The_Project then - return True; - - elsif Extending then - declare - Proj : Project_Id; - - begin - Proj := The_Project; - while Proj /= null loop - if P = Proj.Extends then - return True; - end if; - - Proj := Proj.Extends; - end loop; - end; - end if; - - return False; - end Check_Project; - - -- Start of processing for Insert_Project_Sources - begin -- Loop through all the sources in the project files @@ -6662,7 +6627,10 @@ package body Make is then -- And it is a source for the specified project - if Check_Project (Unit.File_Names (Impl).Project) then + if All_Projects + or else + Is_Extending (The_Project, Unit.File_Names (Impl).Project) + then Project := Unit.File_Names (Impl).Project; -- If we don't have a spec, we cannot consider the source @@ -6707,7 +6675,10 @@ package body Make is elsif Unit.File_Names (Spec) /= null and then not Unit.File_Names (Spec).Locally_Removed - and then Check_Project (Unit.File_Names (Spec).Project) + and then + (All_Projects + or else + Is_Extending (The_Project, Unit.File_Names (Spec).Project)) then -- If there is no source for the body, but there is one for the -- spec which has not been locally removed, then we take this one. diff --git a/gcc/ada/makeutl.adb b/gcc/ada/makeutl.adb index e8134bfef85..87eeec8090c 100644 --- a/gcc/ada/makeutl.adb +++ b/gcc/ada/makeutl.adb @@ -2988,21 +2988,6 @@ package body Makeutl is Shared => Project_Tree.Shared, Force_Lower_Case_Index => False, Allow_Wildcards => True); - - -- If not found, try without extension ??? - -- That's because gnatmake accepts unit names in Switches - - if Switches_For_Main = Nil_Variable_Value - and then Source.Unit /= null - then - Switches_For_Main := Value_Of - (Name => Source.Unit.Name, - Attribute_Or_Array_Name => Name_Switches, - In_Package => Builder_Package, - Shared => Project_Tree.Shared, - Force_Lower_Case_Index => False, - Allow_Wildcards => True); - end if; end if; if Index = 1 then @@ -3084,8 +3069,8 @@ package body Makeutl is if Switches_For_Lang /= Nil_Variable_Value then Write_Line - ("Warning: using Builder'Default_Switches" - & "(""" & Get_Name_String (Lang) + ("Warning: using Builder'Switches(""" + & Get_Name_String (Lang) & """), as there are several mains"); elsif Other_Switches /= Nil_Variable_Value then -- 2.30.2