]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Wed, 28 Oct 2009 14:09:12 +0000 (15:09 +0100)
committerArnaud Charlet <charlet@gcc.gnu.org>
Wed, 28 Oct 2009 14:09:12 +0000 (15:09 +0100)
2009-10-28  Vincent Celier  <celier@adacore.com>

* prj-nmsc.adb (Add_To_Or_Remove_From_List): New name of procedure
Add_If_Not_In_List to account to the fact that a directory may be
removed from the list. Only remove directory if Removed is True.

2009-10-28  Gary Dismukes  <dismukes@adacore.com>

* a-textio.ads, a-textio.ads: Put back function EOF_Char in private
part. Put back body of function EOF_Char.
* a-tienau.adb: Remove with of Interfaces.C_Streams and change EOF back
to EOF_Char.

2009-10-28  Emmanuel Briot  <briot@adacore.com>

* prj-tree.adb (Free): Fix memory leak.

2009-10-28  Thomas Quinot  <quinot@adacore.com>

* s-fileio.adb: Minor reformatting

From-SVN: r153661

gcc/ada/ChangeLog
gcc/ada/a-textio.adb
gcc/ada/a-textio.ads
gcc/ada/a-tienau.adb
gcc/ada/prj-nmsc.adb
gcc/ada/prj-tree.adb
gcc/ada/s-fileio.adb

index ef945d600d8bca36504a547a11623a552b0b7813..cb88c2b51bf475b0a9375af4ce21da35621213a3 100644 (file)
@@ -1,3 +1,24 @@
+2009-10-28  Vincent Celier  <celier@adacore.com>
+
+       * prj-nmsc.adb (Add_To_Or_Remove_From_List): New name of procedure
+       Add_If_Not_In_List to account to the fact that a directory may be
+       removed from the list. Only remove directory if Removed is True.
+
+2009-10-28  Gary Dismukes  <dismukes@adacore.com>
+
+       * a-textio.ads, a-textio.ads: Put back function EOF_Char in private
+       part. Put back body of function EOF_Char.
+       * a-tienau.adb: Remove with of Interfaces.C_Streams and change EOF back
+       to EOF_Char.
+
+2009-10-28  Emmanuel Briot  <briot@adacore.com>
+
+       * prj-tree.adb (Free): Fix memory leak.
+
+2009-10-28  Thomas Quinot  <quinot@adacore.com>
+
+       * s-fileio.adb: Minor reformatting
+
 2009-10-28  Arnaud Charlet  <charlet@adacore.com>
 
        * gcc-interface/Make-lang.in: Update dependencies.
index 417efb5f54f73bcaa0e4ef33ec66954345cd0a37..ceacfe5b127a3659a622e88f34abce6e7601a69d 100644 (file)
@@ -437,6 +437,15 @@ package body Ada.Text_IO is
       return End_Of_Page (Current_In);
    end End_Of_Page;
 
+   --------------
+   -- EOF_Char --
+   --------------
+
+   function EOF_Char return Integer is
+   begin
+      return EOF;
+   end EOF_Char;
+
    -----------
    -- Flush --
    -----------
index 44fe496db18437818436f050ce1499f996ba2f1b..d22b2f9c635a9f6fe530b1b7d6d1db5632e9c920 100644 (file)
@@ -458,6 +458,12 @@ private
    Current_Err  : aliased File_Type := Standard_Err;
    --  Current files
 
+   function EOF_Char return Integer;
+   --  Returns the system-specific character indicating the end of a text file.
+   --  This is exported for use by child packages such as Enumeration_Aux to
+   --  eliminate their needing to depend directly on Interfaces.C_Streams,
+   --  which is not available in certain target environments (such as AAMP).
+
    procedure Initialize_Standard_Files;
    --  Initializes the file control blocks for the standard files. Called from
    --  the elaboration routine for this package, and from Reset_Standard_Files
index e04a34281e285942b30a1891c6d55a32166f99e2..f0c1800f9e7c2710b369afbfe983cb45646797ec 100644 (file)
@@ -32,8 +32,6 @@
 with Ada.Text_IO.Generic_Aux; use Ada.Text_IO.Generic_Aux;
 with Ada.Characters.Handling; use Ada.Characters.Handling;
 
-with Interfaces.C_Streams;    use Interfaces.C_Streams;
-
 --  Note: this package does not yet deal properly with wide characters ???
 
 package body Ada.Text_IO.Enumeration_Aux is
@@ -100,7 +98,7 @@ package body Ada.Text_IO.Enumeration_Aux is
             Store_Char (File, Character'Pos (To_Upper (C)), Buf, Buflen);
 
             ch := Getc (File);
-            exit when ch = EOF;
+            exit when ch = EOF_Char;
             C := Character'Val (ch);
 
             exit when not Is_Letter (C)
index b8d6674cc0e48dd01f9924ed3c9c40e1bf9a599c..5e76bce58ac138903603224436ff9fe75717ca59 100644 (file)
@@ -4708,21 +4708,22 @@ package body Prj.Nmsc is
       is
          Directory : constant String := Get_Name_String (From);
 
-         procedure Add_If_Not_In_List
+         procedure Add_To_Or_Remove_From_List
            (Path_Id         : Name_Id;
             Display_Path_Id : Name_Id);
-         --  Add the directory Path_Id to the list of source_dirs if not
-         --  already in the list.
+         --  When Removed = False, the directory Path_Id to the list of
+         --  source_dirs if not already in the list. When Removed = True,
+         --  removed directory Path_Id if in the list.
 
          procedure Recursive_Find_Dirs (Path : Name_Id);
          --  Find all the subdirectories (recursively) of Path and add them
          --  to the list of source directories of the project.
 
-         ------------------------
-         -- Add_If_Not_In_List --
-         ------------------------
+         --------------------------------
+         -- Add_To_Or_Remove_From_List --
+         --------------------------------
 
-         procedure Add_If_Not_In_List
+         procedure Add_To_Or_Remove_From_List
            (Path_Id         : Name_Id;
             Display_Path_Id : Name_Id)
          is
@@ -4794,7 +4795,7 @@ package body Prj.Nmsc is
                Data.Tree.Number_Lists.Table (Last_Src_Dir_Rank) :=
                  (Number => Rank, Next => No_Number_List);
 
-            elsif List /= Nil_String then
+            elsif Removed and then List /= Nil_String then
 
                --  Remove source dir, if present
 
@@ -4811,7 +4812,7 @@ package body Prj.Nmsc is
                     Data.Tree.Number_Lists.Table (Rank_List).Next;
                end if;
             end if;
-         end Add_If_Not_In_List;
+         end Add_To_Or_Remove_From_List;
 
          -------------------------
          -- Recursive_Find_Dirs --
@@ -4857,7 +4858,7 @@ package body Prj.Nmsc is
                end if;
             end if;
 
-            Add_If_Not_In_List
+            Add_To_Or_Remove_From_List
               (Path_Id         => Canonical_Path,
                Display_Path_Id => Non_Canonical_Path);
 
@@ -5038,7 +5039,8 @@ package body Prj.Nmsc is
                                  Directory      =>
                                    Get_Name_String (Project.Directory.Name),
                                  Resolve_Links  => Opt.Follow_Links_For_Dirs,
-                                 Case_Sensitive => True);
+                                 Case_Sensitive => True) &
+                              Directory_Separator;
 
                      Last_Path         : constant Natural :=
                                            Compute_Directory_Last (Path);
@@ -5062,7 +5064,7 @@ package body Prj.Nmsc is
                           (Display_Path'First .. Last_Display_Path));
                      Display_Path_Id := Name_Find;
 
-                     Add_If_Not_In_List
+                     Add_To_Or_Remove_From_List
                        (Path_Id         => Path_Id,
                         Display_Path_Id => Display_Path_Id);
                   end;
index 7d77e2ab6fddc8b667b043d4e21fcf291596922e..df6e5acb6cf750799f9f850c968ef10a0d769468 100644 (file)
 --                                                                          --
 ------------------------------------------------------------------------------
 
-with Ada.Unchecked_Deallocation;
 with Osint;   use Osint;
 with Prj.Err;
 
+with Ada.Unchecked_Deallocation;
+
 package body Prj.Tree is
 
    Node_With_Comments : constant array (Project_Node_Kind) of Boolean :=
@@ -1000,6 +1001,7 @@ package body Prj.Tree is
       if Proj /= null then
          Project_Node_Table.Free (Proj.Project_Nodes);
          Projects_Htable.Reset (Proj.Projects_HT);
+         Name_To_Name_HTable.Reset (Proj.External_References);
          Free (Proj.Project_Path);
          Unchecked_Free (Proj);
       end if;
index 803c2da99e79916d953e14e79a26e5aa5ef49d8f..317a97ae8aae733424a75e6663ed60038ccbdeef 100644 (file)
@@ -223,15 +223,13 @@ package body System.File_IO is
 
       --  Sever the association between the given file and its associated
       --  external file. The given file is left closed. Do not perform system
-      --  closes on the standard input, output and error files and also do
-      --  not attempt to close a stream that does not exist (signalled by a
-      --  null stream value -- happens in some error situations).
+      --  closes on the standard input, output and error files and also do not
+      --  attempt to close a stream that does not exist (signalled by a null
+      --  stream value -- happens in some error situations).
 
-      if not File.Is_System_File
-        and then File.Stream /= NULL_Stream
-      then
-         --  Do not do an fclose if this is a shared file and there is
-         --  at least one other instance of the stream that is open.
+      if not File.Is_System_File and then File.Stream /= NULL_Stream then
+         --  Do not do an fclose if this is a shared file and there is at least
+         --  one other instance of the stream that is open.
 
          if File.Shared_Status = Yes then
             declare
@@ -240,9 +238,7 @@ package body System.File_IO is
             begin
                P := Open_Files;
                while P /= null loop
-                  if P /= File
-                    and then File.Stream = P.Stream
-                  then
+                  if P /= File and then File.Stream = P.Stream then
                      Dup_Strm := True;
                      exit;
                   end if;
@@ -314,9 +310,9 @@ package body System.File_IO is
       begin
          Close (File_Ptr);
 
-         --  Now unlink the external file. Note that we use the full name
-         --  in this unlink, because the working directory may have changed
-         --  since we did the open, and we want to unlink the right file!
+         --  Now unlink the external file. Note that we use the full name in
+         --  this unlink, because the working directory may have changed since
+         --  we did the open, and we want to unlink the right file!
 
          if unlink (Filename'Address) = -1 then
             raise Use_Error;
@@ -369,8 +365,8 @@ package body System.File_IO is
 
       SSL.Lock_Task.all;
 
-      --  First close all open files (the slightly complex form of this loop
-      --  is required because Close as a side effect nulls out its argument)
+      --  First close all open files (the slightly complex form of this loop is
+      --  required because Close as a side effect nulls out its argument).
 
       Fptr1 := Open_Files;
       while Fptr1 /= null loop
@@ -379,9 +375,9 @@ package body System.File_IO is
          Fptr1 := Fptr2;
       end loop;
 
-      --  Now unlink all temporary files. We do not bother to free the
-      --  blocks because we are just about to terminate the program. We
-      --  also ignore any errors while attempting these unlink operations.
+      --  Now unlink all temporary files. We do not bother to free the blocks
+      --  because we are just about to terminate the program. We also ignore
+      --  any errors while attempting these unlink operations.
 
       while Temp_Files /= null loop
          Discard := unlink (Temp_Files.Name'Address);
@@ -429,20 +425,20 @@ package body System.File_IO is
    --  you can reset to earlier points in the file. The caller must use the
    --  Append_Set routine to deal with the necessary positioning.
 
-   --  Note: in several cases, the fopen mode used allows reading and
-   --  writing, but the setting of the Ada mode is more restrictive. For
-   --  instance, Create in In_File mode uses "w+" which allows writing,
-   --  but the Ada mode In_File will cause any write operations to be
-   --  rejected with Mode_Error in any case.
+   --  Note: in several cases, the fopen mode used allows reading and writing,
+   --  but the setting of the Ada mode is more restrictive. For instance,
+   --  Create in In_File mode uses "w+" which allows writing, but the Ada mode
+   --  In_File will cause any write operations to be rejected with Mode_Error
+   --  in any case.
 
-   --  Note: for the Out_File/Open cases for other than the Direct_IO case,
-   --  an initial call will be made by the caller to first open the file in
-   --  "r" mode to be sure that it exists. The real open, in "w" mode, will
-   --  then destroy this file. This is peculiar, but that's what Ada semantics
-   --  require and the ACVT tests insist on!
+   --  Note: for the Out_File/Open cases for other than the Direct_IO case, an
+   --  initial call will be made by the caller to first open the file in "r"
+   --  mode to be sure that it exists. The real open, in "w" mode, will then
+   --  destroy this file. This is peculiar, but that's what Ada semantics
+   --  require and the ACATS tests insist on!
 
-   --  If text file translation is required, then either b or t is
-   --  added to the mode, depending on the setting of Text.
+   --  If text file translation is required, then either "b" or "t" is appended
+   --  to the mode, depending on the setting of Text.
 
    procedure Fopen_Mode
      (Mode    : File_Mode;
@@ -591,11 +587,9 @@ package body System.File_IO is
       Keyword : String;
       Start   : out Natural;
       Stop    : out Natural)
-  is
+   is
       Klen : constant Integer := Keyword'Length;
 
-   --  Start of processing for Form_Parameter
-
    begin
       for J in Form'First + Klen .. Form'Last - 1 loop
          if Form (J) = '='
@@ -661,6 +655,7 @@ package body System.File_IO is
 
    begin
       status := setvbuf (File.Stream, Null_Address, IOLBF, Line_Siz);
+      --  No error checking???
    end Make_Line_Buffered;
 
    ---------------------
@@ -673,6 +668,7 @@ package body System.File_IO is
 
    begin
       status := setvbuf (File.Stream, Null_Address, IONBF, 0);
+      --  No error checking???
    end Make_Unbuffered;
 
    ----------
@@ -722,7 +718,7 @@ package body System.File_IO is
 
       procedure Tmp_Name (Buffer : Address);
       pragma Import (C, Tmp_Name, "__gnat_tmp_name");
-      --  set buffer (a String address) with a temporary filename
+      --  Set buffer (a String address) with a temporary filename
 
       Stream : FILEs := C_Stream;
       --  Stream which we open in response to this request
@@ -742,9 +738,9 @@ package body System.File_IO is
       --  Indicates temporary file case
 
       Namelen : constant Integer := max_path_len;
-      --  Length required for file name, not including final ASCII.NUL
-      --  Note that we used to reference L_tmpnam here, which is not
-      --  reliable since __gnat_tmp_name does not always use tmpnam.
+      --  Length required for file name, not including final ASCII.NUL.
+      --  Note that we used to reference L_tmpnam here, which is not reliable
+      --  since __gnat_tmp_name does not always use tmpnam.
 
       Namestr : aliased String (1 .. Namelen + 1);
       --  Name as given or temporary file name with ASCII.NUL appended
@@ -900,7 +896,7 @@ package body System.File_IO is
 
          --  Fullname is generated by calling system's full_name. The problem
          --  is, full_name does nothing about the casing, so a file name
-         --  comparison may generally speaking not be valid on non-case
+         --  comparison may generally speaking not be valid on non-case-
          --  sensitive systems, and in particular we get unexpected failures
          --  on Windows/Vista because of this. So we use s-casuti to force
          --  the name to lower case.
@@ -909,8 +905,8 @@ package body System.File_IO is
             To_Lower (Fullname (1 .. Full_Name_Len));
          end if;
 
-         --  If Shared=None or Shared=Yes, then check for the existence
-         --  of another file with exactly the same full name.
+         --  If Shared=None or Shared=Yes, then check for the existence of
+         --  another file with exactly the same full name.
 
          if Shared /= No then
             declare
@@ -1030,8 +1026,8 @@ package body System.File_IO is
       end if;
 
       --  Stream has been successfully located or opened, so now we are
-      --  committed to completing the opening of the file. Allocate block
-      --  on heap and fill in its fields.
+      --  committed to completing the opening of the file. Allocate block on
+      --  heap and fill in its fields.
 
       File_Ptr := AFCB_Allocate (Dummy_FCB);
 
@@ -1103,9 +1099,9 @@ package body System.File_IO is
       Reset (File_Ptr, File.Mode);
    end Reset;
 
-   --  The reset with a change in mode is done using freopen, and is
-   --  not permitted except for regular files (since otherwise there
-   --  is no name for the freopen, and in any case it seems meaningless)
+   --  The reset with a change in mode is done using freopen, and is not
+   --  permitted except for regular files (since otherwise there is no name for
+   --  the freopen, and in any case it seems meaningless).
 
    procedure Reset (File_Ptr : access AFCB_Ptr; Mode : File_Mode) is
       File   : AFCB_Ptr renames File_Ptr.all;
@@ -1126,17 +1122,17 @@ package body System.File_IO is
       then
          raise Use_Error;
 
-      --  For In_File or Inout_File for a regular file, we can just do a
-      --  rewind if the mode is unchanged, which is more efficient than
-      --  doing a full reopen.
+      --  For In_File or Inout_File for a regular file, we can just do a rewind
+      --  if the mode is unchanged, which is more efficient than doing a full
+      --  reopen.
 
       elsif Mode = File.Mode
         and then Mode <= Inout_File
       then
          rewind (File.Stream);
 
-      --  Here the change of mode is permitted, we do it by reopening the
-      --  file in the new mode and replacing the stream with a new stream.
+      --  Here the change of mode is permitted, we do it by reopening the file
+      --  in the new mode and replacing the stream with a new stream.
 
       else
          Fopen_Mode
@@ -1162,10 +1158,10 @@ package body System.File_IO is
 
    procedure Write_Buf (File : AFCB_Ptr; Buf : Address; Siz : size_t) is
    begin
-      --  Note: for most purposes, the Siz and 1 parameters in the fwrite
-      --  call could be reversed, but on VMS, this is a better choice, since
-      --  for some file formats, reversing the parameters results in records
-      --  of one byte each.
+      --  Note: for most purposes, the Siz and 1 parameters in the fwrite call
+      --  could be reversed, but on VMS, this is a better choice, since for
+      --  some file formats, reversing the parameters results in records of one
+      --  byte each.
 
       SSL.Abort_Defer.all;