OSDN Git Service

2009-07-27 Emmanuel Briot <briot@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Jul 2009 14:39:51 +0000 (14:39 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 27 Jul 2009 14:39:51 +0000 (14:39 +0000)
* prj.ads, prj-nmsc.adb (Override_Kind): add debug trace
Add comments.

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

gcc/ada/ChangeLog
gcc/ada/prj-nmsc.adb

index 16e985a..bf78d8c 100644 (file)
@@ -1,3 +1,8 @@
+2009-07-27  Emmanuel Briot  <briot@adacore.com>
+
+       * prj.ads, prj-nmsc.adb (Override_Kind): add debug trace
+       Add comments.
+
 2009-07-27  Sergey Rybin  <rybin@adacore.com>
 
        * gnat_ugn.texi: gnatcheck Unconstrained_Array_Returns rule: Add to the
index f0ded90..ee74ad7 100644 (file)
@@ -726,11 +726,27 @@ package body Prj.Nmsc is
       Id.Kind                := Kind;
       Id.Alternate_Languages := Alternate_Languages;
       Id.Locally_Removed     := Locally_Removed;
+      Id.Index               := Index;
+      Id.File                := File_Name;
+      Id.Display_File        := Display_File;
+      Id.Dep_Name            := Dependency_Name
+                               (File_Name, Lang_Id.Config.Dependency_Kind);
+      Id.Naming_Exception    := Naming_Exception;
 
       --  Add the source id to the Unit_Sources_HT hash table, if the unit name
       --  is not null.
 
       if Unit /= No_Name then
+         --  Note: we might be creating a dummy unit here, when we in fact have
+         --  a separate. For instance, file file-bar.adb will initially be
+         --  assumed to be the IMPL of unit "file.bar". Only later on (in
+         --  Check_Object_Files) will we parse those units that only have an
+         --  impl and no spec to make sure whether we have a Separate in fact
+         --  (that significantly reduces the number of times we need to parse
+         --  the files, since we are then only interested in those with no
+         --  spec). We still need those dummy units in the table, since that's
+         --  the name we find in the ALI file
+
          UData := Units_Htable.Get (Data.Tree.Units_HT, Unit);
 
          if UData = No_Unit_Index then
@@ -746,13 +762,6 @@ package body Prj.Nmsc is
          Override_Kind (Id, Kind);
       end if;
 
-      Id.Index            := Index;
-      Id.File             := File_Name;
-      Id.Display_File     := Display_File;
-      Id.Dep_Name         := Dependency_Name
-                               (File_Name, Lang_Id.Config.Dependency_Kind);
-      Id.Naming_Exception := Naming_Exception;
-
       if Is_Compilable (Id) and then Config.Object_Generated then
          Id.Object   := Object_Name (File_Name, Config.Object_File_Suffix);
          Id.Switches := Switches_Name (File_Name);
@@ -6541,6 +6550,14 @@ package body Prj.Nmsc is
 
       Source.Kind := Kind;
 
+      if Current_Verbosity = High
+        and then Source.File /= No_File
+      then
+         Write_Line ("Override kind for "
+                     & Get_Name_String (Source.File)
+                     & " kind=" & Source.Kind'Img);
+      end if;
+
       if Source.Kind in Spec_Or_Body and then Source.Unit /= null then
          Source.Unit.File_Names (Source.Kind) := Source;
       end if;