OSDN Git Service

2011-08-04 Emmanuel Briot <briot@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 4 Aug 2011 13:00:35 +0000 (13:00 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 4 Aug 2011 13:00:35 +0000 (13:00 +0000)
* 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

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

gcc/ada/ChangeLog
gcc/ada/make.adb
gcc/ada/makeutl.adb

index da4cc10..aa81ae6 100644 (file)
@@ -1,5 +1,11 @@
 2011-08-04  Emmanuel Briot  <briot@adacore.com>
 
+       * 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  <briot@adacore.com>
+
        * makeutl.adb (Complete_Mains): if the user has passed a relative file
        name on the command line (for instance "../dummy"), never assume it can
        be a unit name.
index d450648..6d1eaa5 100644 (file)
@@ -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.
index e8134bf..87eeec8 100644 (file)
@@ -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