]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
sem_res.adb: Minor fix to error message text.
authorRobert Dewar <dewar@adacore.com>
Mon, 14 Oct 2013 13:51:45 +0000 (13:51 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 14 Oct 2013 13:51:45 +0000 (15:51 +0200)
2013-10-14  Robert Dewar  <dewar@adacore.com>

* sem_res.adb: Minor fix to error message text.
* errout.ads, erroutc.ads: Minor reformatting.
* s-ststop.ads, s-stratt.ads: Clean up documentation of block IO
mode for streams.
* s-stratt-xdr.adb: Minor comment update.

From-SVN: r203559

gcc/ada/ChangeLog
gcc/ada/errout.ads
gcc/ada/erroutc.ads
gcc/ada/s-stratt-xdr.adb
gcc/ada/s-stratt.ads
gcc/ada/s-ststop.ads
gcc/ada/sem_res.adb

index d155557eff5a299e0b1719fd492a38d40465e373..8cd9a9dd98d263b503f4eb1b90b158390bb325ce 100644 (file)
@@ -1,3 +1,11 @@
+2013-10-14  Robert Dewar  <dewar@adacore.com>
+
+       * sem_res.adb: Minor fix to error message text.
+       * errout.ads, erroutc.ads: Minor reformatting.
+       * s-ststop.ads, s-stratt.ads: Clean up documentation of block IO
+       mode for streams.
+       * s-stratt-xdr.adb: Minor comment update.
+
 2013-10-14  Robert Dewar  <dewar@adacore.com>
 
        * sem_aux.adb, sem_aux.ads, sem_prag.adb: Minor reformatting.
index 0973b6801cc83c9aa4721660c4eec2421a8537a5..e268d1f58d7190fea66d0a07a811bcc41719235a 100644 (file)
@@ -313,6 +313,8 @@ package Errout is
    --      taken as an Ada reserved word, and are converted to the default
    --      case for reserved words (see Scans package spec). Surrounding
    --      quotes are added unless manual quotation mode is currently set.
+   --      RM and SPARK are special exceptions, they are never treated as
+   --      keywords, and just appear verbatim, with no surrounding quotes.
 
    --    Insertion character ` (Backquote: set manual quotation mode)
    --      The backquote character always appears in pairs. Each backquote of
index 02101852d44768c444ddc260f31e6d788b78670a..647e58bafdd4ea6b3da85fff7aadf676256c0141 100644 (file)
@@ -427,7 +427,8 @@ package Erroutc is
    --  Handle reserved word insertion (upper case letters). The Text argument
    --  is the current error message input text, and J is an index which on
    --  entry points to the first character of the reserved word, and on exit
-   --  points past the last character of the reserved word.
+   --  points past the last character of the reserved word. Note that RM and
+   --  SPARK are treated specially and not considered to be keywords.
 
    procedure Set_Msg_Insertion_Run_Time_Name;
    --  If package System contains a definition for Run_Time_Name (see package
index d63c251477969ec36072d7b1030e85675967e9a9..ae4c9b37e7c444323f7ed2eb579928b8648f1cf6 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---         Copyright (C) 1996-2012, Free Software Foundation, Inc.          --
+--         Copyright (C) 1996-2013, Free Software Foundation, Inc.          --
 --                                                                          --
 -- GARLIC is free software;  you can redistribute it and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -283,6 +283,10 @@ package body System.Stream_Attributes is
    -- Block_IO_OK --
    -----------------
 
+   --  We must inhibit Block_IO, because in XDR mode, each element is output
+   --  according to XDR requirements, which is not at all the same as writing
+   --  the whole array in one block.
+
    function Block_IO_OK return Boolean is
    begin
       return False;
index 498700e06b5f048cf11a8826f6eccfdfbfefcaa6..ce1b4f5e1246ef6de59418cc8d54b47b1a8f28e1 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2010, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2013, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
@@ -88,7 +88,6 @@ package System.Stream_Attributes is
    --  the first subtype is specified, or where an enumeration representation
    --  clause is given, these three types are treated like any other cases
    --  of enumeration types, as described above.
-   --  for
 
    ---------------------
    -- Input Functions --
@@ -114,8 +113,8 @@ package System.Stream_Attributes is
    function I_SF  (Stream : not null access RST) return Short_Float;
    function I_SI  (Stream : not null access RST) return Short_Integer;
    function I_SSI (Stream : not null access RST) return Short_Short_Integer;
-   function I_SSU (Stream : not null access RST)
-     return UST.Short_Short_Unsigned;
+   function I_SSU (Stream : not null access RST) return
+                                                   UST.Short_Short_Unsigned;
    function I_SU  (Stream : not null access RST) return UST.Short_Unsigned;
    function I_U   (Stream : not null access RST) return UST.Unsigned;
    function I_WC  (Stream : not null access RST) return Wide_Character;
@@ -125,10 +124,10 @@ package System.Stream_Attributes is
    -- Output Procedures --
    -----------------------
 
-   --  Procedures for S'Write attribute. These procedures are also used
-   --  for 'Output, since for elementary types there is no difference
-   --  between 'Write and 'Output because there are no discriminants
-   --  or bounds to be written.
+   --  Procedures for S'Write attribute. These procedures are also used for
+   --  'Output, since for elementary types there is no difference between
+   --  'Write and 'Output because there are no discriminants or bounds to
+   --  be written.
 
    procedure W_AD  (Stream : not null access RST; Item : Fat_Pointer);
    procedure W_AS  (Stream : not null access RST; Item : Thin_Pointer);
@@ -140,17 +139,15 @@ package System.Stream_Attributes is
    procedure W_LI  (Stream : not null access RST; Item : Long_Integer);
    procedure W_LLF (Stream : not null access RST; Item : Long_Long_Float);
    procedure W_LLI (Stream : not null access RST; Item : Long_Long_Integer);
-   procedure W_LLU (Stream : not null access RST;
-                    Item   : UST.Long_Long_Unsigned);
+   procedure W_LLU (Stream : not null access RST; Item :
+                                                    UST.Long_Long_Unsigned);
    procedure W_LU  (Stream : not null access RST; Item : UST.Long_Unsigned);
    procedure W_SF  (Stream : not null access RST; Item : Short_Float);
    procedure W_SI  (Stream : not null access RST; Item : Short_Integer);
-   procedure W_SSI (Stream : not null access RST;
-                    Item   : Short_Short_Integer);
-   procedure W_SSU (Stream : not null access RST;
-                    Item   : UST.Short_Short_Unsigned);
-   procedure W_SU  (Stream : not null access RST;
-                    Item   : UST.Short_Unsigned);
+   procedure W_SSI (Stream : not null access RST; Item : Short_Short_Integer);
+   procedure W_SSU (Stream : not null access RST; Item :
+                                                    UST.Short_Short_Unsigned);
+   procedure W_SU  (Stream : not null access RST; Item : UST.Short_Unsigned);
    procedure W_U   (Stream : not null access RST; Item : UST.Unsigned);
    procedure W_WC  (Stream : not null access RST; Item : Wide_Character);
    procedure W_WWC (Stream : not null access RST; Item : Wide_Wide_Character);
@@ -160,7 +157,7 @@ package System.Stream_Attributes is
    --  distributed with GNAT, and s-stratt-xdr.adb, which is based on the XDR
    --  standard. Both bodies share the same spec. The role of this function is
    --  to indicate whether the current version of System.Stream_Attributes
-   --  supports block IO.
+   --  supports block IO. See System.Strings.Stream_Ops (s-ststop) for details.
 
 private
    pragma Inline (I_AD);
index db7059069b745332f0a0b15e13aba1b4035e58b8..0c7813ffb9a9a61951dd4067bc80ece5028f7cfa 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---             Copyright (C) 2009, Free Software Foundation, Inc.           --
+--          Copyright (C) 2009-2013, Free Software Foundation, Inc.         --
 --                                                                          --
 -- GNAT is free software;  you can  redistribute it  and/or modify it under --
 -- terms of the  GNU General Public License as published  by the Free Soft- --
 ------------------------------------------------------------------------------
 
 --  This package provides subprogram implementations of stream attributes for
---  the following types:
+--  the following types using a "block IO" approach in which the entire data
+--  item is written in one operation, instead of writing individual characters.
+
 --     Ada.String
 --     Ada.Wide_String
 --     Ada.Wide_Wide_String
---
+
 --  The compiler will generate references to the subprograms in this package
 --  when expanding stream attributes for the above mentioned types. Example:
---
+
 --     String'Output (Some_Stream, Some_String);
---
+
 --  will be expanded into:
---
+
 --     String_Output (Some_Stream, Some_String);
 --       or
 --     String_Output_Blk_IO (Some_Stream, Some_String);
 
+--  This expansion occurs only if System.Stream_Attributes.Block_IO_OK returns
+--  True, indicating that this approach is compatible with the expectations of
+--  System.Stream_Attributes. For the default implementation of this package,
+--  there is no difference between writing the elements one by one using the
+--  default output routine for the element type and writing the whole array
+--  using block IO.
+
+--  In addition,
+
 pragma Compiler_Unit;
 
 with Ada.Streams;
index 3cb49f416a78e3a99b79057602b111f928cdd48d..430766d25bcc502b85a215783365e22f62314dfd 100644 (file)
@@ -3634,7 +3634,7 @@ package body Sem_Res is
                then
                   Error_Msg_N
                     ("conversion between unrelated limited array types "
-                     & "not allowed (\A\I-00246)", A);
+                     & "not allowed ('A'I-00246)", A);
 
                   if Is_Limited_Type (Etype (F)) then
                      Explain_Limited_Type (Etype (F), A);
@@ -3666,8 +3666,8 @@ package body Sem_Res is
                      then
                         New_Itype := Create_Itype (E_Anonymous_Access_Type, A);
                         Set_Etype (New_Itype, Etype (A));
-                        Set_Directly_Designated_Type (New_Itype,
-                          Directly_Designated_Type (Etype (A)));
+                        Set_Directly_Designated_Type
+                          (New_Itype, Directly_Designated_Type (Etype (A)));
                         Set_Etype (A, New_Itype);
                      end if;
 
@@ -3701,7 +3701,7 @@ package body Sem_Res is
 
                if Is_Tagged_Type (F_Typ)
                  and then (Is_Concurrent_Type (F_Typ)
-                             or else Is_Concurrent_Record_Type (F_Typ))
+                            or else Is_Concurrent_Record_Type (F_Typ))
                then
                   --  If the actual is overloaded, look for an interpretation
                   --  that has a synchronized type.
@@ -3768,10 +3768,10 @@ package body Sem_Res is
                         Resolve (A, Etype (F));
                      end if;
                   end;
-               else
 
-                  --  not a synchronized operation.
+               --  Not a synchronized operation
 
+               else
                   Resolve (A, Etype (F));
                end if;
             end if;
@@ -3937,10 +3937,11 @@ package body Sem_Res is
                   if Is_Subprogram (Current_Scope)
                     and then
                       (Is_Invariant_Procedure (Current_Scope)
-                         or else Is_Predicate_Function (Current_Scope))
+                        or else Is_Predicate_Function (Current_Scope))
                   then
-                     Error_Msg_N ("function used in predicate cannot " &
-                       "modify its argument", F);
+                     Error_Msg_N
+                       ("function used in predicate cannot "
+                        & "modify its argument", F);
                   end if;
                end if;
 
@@ -4164,7 +4165,7 @@ package body Sem_Res is
               and then (Is_Class_Wide_Type (Designated_Type (A_Typ))
                          or else (Nkind (A) = N_Attribute_Reference
                                    and then
-                                  Is_Class_Wide_Type (Etype (Prefix (A)))))
+                                     Is_Class_Wide_Type (Etype (Prefix (A)))))
               and then not Is_Class_Wide_Type (Designated_Type (F_Typ))
               and then not Is_Controlling_Formal (F)
 
@@ -4188,12 +4189,14 @@ package body Sem_Res is
             Eval_Actual (A);
 
             --  If it is a named association, treat the selector_name as a
-            --  proper identifier, and mark the corresponding entity. Ignore
-            --  this reference in SPARK mode, as it refers to an entity not in
-            --  scope at the point of reference, so the reference should be
-            --  ignored for computing effects of subprograms.
+            --  proper identifier, and mark the corresponding entity.
 
             if Nkind (Parent (A)) = N_Parameter_Association
+
+              --  Ignore reference in SPARK mode, as it refers to an entity not
+              --  in scope at the point of reference, so the reference should
+              --  be ignored for computing effects of subprograms.
+
               and then not SPARK_Mode
             then
                Set_Entity (Selector_Name (Parent (A)), F);