2010-10-05 Vincent Celier <celier@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 5 Oct 2010 09:16:23 +0000 (09:16 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 5 Oct 2010 09:16:23 +0000 (09:16 +0000)
* make.adb (Check): When compiling with -gnatc, recompile if the ALI
file has not been generated for the current source, for example if it
has been generated for the spec, but we are compiling the body.

2010-10-05  Bob Duff  <duff@adacore.com>

* xgnatugn.adb: Remove unused procedure.

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

gcc/ada/ChangeLog
gcc/ada/make.adb
gcc/ada/xgnatugn.adb

index 7aeb5a7..4c5c8c8 100644 (file)
@@ -1,3 +1,13 @@
+2010-10-05  Vincent Celier  <celier@adacore.com>
+
+       * make.adb (Check): When compiling with -gnatc, recompile if the ALI
+       file has not been generated for the current source, for example if it
+       has been generated for the spec, but we are compiling the body.
+
+2010-10-05  Bob Duff  <duff@adacore.com>
+
+       * xgnatugn.adb: Remove unused procedure.
+
 2010-10-04  Vincent Celier  <celier@adacore.com>
 
        * a-direct.adb (Copy_File): Interpret the Form parameter and call
index 1df76a5..2c2489c 100644 (file)
@@ -1658,6 +1658,32 @@ package body Make is
             return;
          end if;
 
+         --  When compiling with -gnatc, don't take ALI file into account if
+         --  it has not been generated for the current source, for example if
+         --  it has been generated for the spec, but we are compiling the body.
+
+         if Operating_Mode = Check_Semantics then
+            declare
+               File_Name : constant String := Get_Name_String (Source_File);
+               OK        : Boolean := False;
+
+            begin
+               for U in ALIs.Table (ALI).First_Unit ..
+                 ALIs.Table (ALI).Last_Unit
+               loop
+                  OK := Get_Name_String (Units.Table (U).Sfile) = File_Name;
+                  exit when OK;
+               end loop;
+
+               if not OK then
+                  Verbose_Msg
+                    (Full_Lib_File, "not generated for the same source");
+                  ALI := No_ALI_Id;
+                  return;
+               end if;
+            end;
+         end if;
+
          --  Check for matching compiler switches if needed
 
          if Check_Switches then
index ee3b07d..ab16817 100644 (file)
@@ -127,7 +127,6 @@ procedure Xgnatugn is
    --  line-oriented checks (length, character set, trailing spaces).
 
    procedure Put_Line (F : Sfile; S : String);
-   procedure Put_Line (F : Sfile; S : VString);
    --  Local version of Put_Line ensures Unix style line endings
 
    Number_Of_Warnings : Natural := 0;
@@ -369,11 +368,6 @@ procedure Xgnatugn is
       Character'Write (Stream (F), ASCII.LF);
    end Put_Line;
 
-   procedure Put_Line (F : Sfile; S : VString) is
-   begin
-      Put_Line (F, To_String (S));
-   end Put_Line;
-
    -----------
    -- Error --
    -----------