[multiple changes]
authorArnaud Charlet <charlet@gcc.gnu.org>
Fri, 18 Jul 2014 10:12:41 +0000 (12:12 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 18 Jul 2014 10:12:41 +0000 (12:12 +0200)
2014-07-18  Robert Dewar  <dewar@adacore.com>

* sem_prag.adb, sem_attr.adb,
sem_aggr.adb, sinfo.ads, sem_eval.ads: Minor reformatting.

2014-07-18  Pascal Obry  <obry@adacore.com>

* sysdep.c (__gnat_wide_text_translation_required): Removed from here.
* initialize.c (__gnat_wide_text_translation_required): Defined here.

2014-07-18  Pascal Obry  <obry@adacore.com>

* adaint.c (__gnat_fputwc): New routine.
* s-crtl.ads (fputwc): Now imported as __gnat_fputwc.

2014-07-18  Hristian Kirtchev  <kirtchev@adacore.com>

* einfo.adb: Flag 270 is now used as Stores_Attribute_Old_Prefix.
(Set_Stores_Attribute_Old_Prefix): New routine.
(Stores_Attribute_Old_Prefix): New routine.
(Write_Entity_Flags):
Output flag Stores_Attribute_Old_Prefix.
* einfo.ads Add new flag Stores_Attribute_Old_Prefix along with
comment on usage.
(Set_Stores_Attribute_Old_Prefix): New routine
along with pragma Inline.
(Stores_Attribute_Old_Prefix): New
routine along with pragma Inline.
* exp_attr.adb (Expand_N_Attribute_Reference): Mark the generated
constant which captures the result of attribute 'Old's prefix.
* sem_util.adb (In_Assertion_Expression_Pragma): Recognize a
relocated expression which acted as a prefix of attribute 'Old.

2014-07-18  Bob Duff  <duff@adacore.com>

* s-spsufi.adb (Finalize_And_Deallocate): Set Subpool.Owner to
null before dispatching to Deallocate_Subpool.
* s-stposu.ads (Default_Subpool_For_Pool): Change mode of
parameter of Default_Subpool_For_Pool to 'in out'.
* s-stposu.adb (Set_Pool_Of_Subpool): Use raise expression. Add
a message to the raise.
* sem_util.adb: Minor reformatting.

From-SVN: r212806

17 files changed:
gcc/ada/ChangeLog
gcc/ada/adaint.c
gcc/ada/einfo.adb
gcc/ada/einfo.ads
gcc/ada/exp_attr.adb
gcc/ada/initialize.c
gcc/ada/s-crtl.ads
gcc/ada/s-spsufi.adb
gcc/ada/s-stposu.adb
gcc/ada/s-stposu.ads
gcc/ada/sem_aggr.adb
gcc/ada/sem_attr.adb
gcc/ada/sem_eval.ads
gcc/ada/sem_prag.adb
gcc/ada/sem_util.adb
gcc/ada/sinfo.ads
gcc/ada/sysdep.c

index 99cdb1e45288f84180e36a67fa8d07249afae1bd..8bbebc024b2f6e753d5352fca536a280f192d3cd 100644 (file)
@@ -1,3 +1,46 @@
+2014-07-18  Robert Dewar  <dewar@adacore.com>
+
+       * sem_prag.adb, sem_attr.adb,
+       sem_aggr.adb, sinfo.ads, sem_eval.ads: Minor reformatting.
+
+2014-07-18  Pascal Obry  <obry@adacore.com>
+
+       * sysdep.c (__gnat_wide_text_translation_required): Removed from here.
+       * initialize.c (__gnat_wide_text_translation_required): Defined here.
+
+2014-07-18  Pascal Obry  <obry@adacore.com>
+
+       * adaint.c (__gnat_fputwc): New routine.
+       * s-crtl.ads (fputwc): Now imported as __gnat_fputwc.
+
+2014-07-18  Hristian Kirtchev  <kirtchev@adacore.com>
+
+       * einfo.adb: Flag 270 is now used as Stores_Attribute_Old_Prefix.
+       (Set_Stores_Attribute_Old_Prefix): New routine.
+       (Stores_Attribute_Old_Prefix): New routine.
+       (Write_Entity_Flags):
+       Output flag Stores_Attribute_Old_Prefix.
+       * einfo.ads Add new flag Stores_Attribute_Old_Prefix along with
+       comment on usage.
+       (Set_Stores_Attribute_Old_Prefix): New routine
+       along with pragma Inline.
+       (Stores_Attribute_Old_Prefix): New
+       routine along with pragma Inline.
+       * exp_attr.adb (Expand_N_Attribute_Reference): Mark the generated
+       constant which captures the result of attribute 'Old's prefix.
+       * sem_util.adb (In_Assertion_Expression_Pragma): Recognize a
+       relocated expression which acted as a prefix of attribute 'Old.
+
+2014-07-18  Bob Duff  <duff@adacore.com>
+
+       * s-spsufi.adb (Finalize_And_Deallocate): Set Subpool.Owner to
+       null before dispatching to Deallocate_Subpool.
+       * s-stposu.ads (Default_Subpool_For_Pool): Change mode of
+       parameter of Default_Subpool_For_Pool to 'in out'.
+       * s-stposu.adb (Set_Pool_Of_Subpool): Use raise expression. Add
+       a message to the raise.
+       * sem_util.adb: Minor reformatting.
+
 2014-07-18  Robert Dewar  <dewar@adacore.com>
 
        * sem_util.adb (Check_Expression_Against_Static_Predicate):
index 4d99c68ca0b24346c98a82759d3e87851165824e..184d645881ce61ced621fd4d9a67b99909706d16 100644 (file)
@@ -229,6 +229,7 @@ extern unsigned int LIB$CALLG_64 (unsigned long long argument_list [],
 
 #else
 #include <utime.h>
+#include <wchar.h>
 #endif
 
 #if defined (_WIN32)
@@ -851,6 +852,16 @@ __gnat_rmdir (char *path)
 #endif
 }
 
+int
+__gnat_fputwc(int c, FILE *stream)
+{
+#if ! defined (__vxworks) && ! defined (IS_CROSS)
+  return fputwc ((wchar_t)c, stream);
+#else
+  return fputc (c, stream);
+#endif
+}
+
 FILE *
 __gnat_fopen (char *path, char *mode, int encoding ATTRIBUTE_UNUSED,
               char *vms_form ATTRIBUTE_UNUSED)
index 39342a1e2765f337b40ad3bb38eb8bf5c9640d0a..dbefc1ad7735fae303c37fe17560f3b62e698186 100644 (file)
@@ -211,7 +211,7 @@ package body Einfo is
    --    Generic_Renamings               Elist23
    --    Inner_Instances                 Elist23
    --    Limited_View                    Node23
-   --    Packed_Array_Impl_Type               Node23
+   --    Packed_Array_Impl_Type          Node23
    --    Protection_Object               Node23
    --    Stored_Constraint               Elist23
 
@@ -560,13 +560,12 @@ package body Einfo is
    --    Has_Shift_Operator              Flag267
    --    Is_Independent                  Flag268
    --    Has_Static_Predicate            Flag269
+   --    Stores_Attribute_Old_Prefix     Flag270
 
    --    (unused)                        Flag1
    --    (unused)                        Flag2
    --    (unused)                        Flag3
 
-   --    (unused)                        Flag270
-
    --    (unused)                        Flag271
    --    (unused)                        Flag272
    --    (unused)                        Flag273
@@ -3004,6 +3003,11 @@ package body Einfo is
       return Elist23 (Id);
    end Stored_Constraint;
 
+   function Stores_Attribute_Old_Prefix (Id : E) return B is
+   begin
+      return Flag270 (Id);
+   end Stores_Attribute_Old_Prefix;
+
    function Strict_Alignment (Id : E) return B is
    begin
       return Flag145 (Implementation_Base_Type (Id));
@@ -5784,6 +5788,12 @@ package body Einfo is
       Set_Elist23 (Id, V);
    end Set_Stored_Constraint;
 
+   procedure Set_Stores_Attribute_Old_Prefix (Id : E; V : B := True) is
+   begin
+      pragma Assert (Ekind (Id) = E_Constant);
+      Set_Flag270 (Id, V);
+   end Set_Stores_Attribute_Old_Prefix;
+
    procedure Set_Strict_Alignment (Id : E; V : B := True) is
    begin
       pragma Assert (Id = Base_Type (Id));
@@ -8413,6 +8423,7 @@ package body Einfo is
       W ("SPARK_Aux_Pragma_Inherited",      Flag266 (Id));
       W ("SPARK_Pragma_Inherited",          Flag265 (Id));
       W ("Static_Elaboration_Desired",      Flag77  (Id));
+      W ("Stores_Attribute_Old_Prefix",     Flag270 (Id));
       W ("Strict_Alignment",                Flag145 (Id));
       W ("Suppress_Elaboration_Warnings",   Flag148 (Id));
       W ("Suppress_Initialization",         Flag105 (Id));
index eb1f7b7d916337bbf8054379075736769348ad8a..fb55d1b34637625b529fc034755003bbc175adda 100644 (file)
@@ -3909,15 +3909,6 @@ package Einfo is
 --       or the declaration of a "hook" object.
 --       In which case is it a flag, or a hook object???
 
---    Storage_Size_Variable (Node15) [implementation base type only]
---       Defined in access types and task type entities. This flag is set
---       if a valid and effective pragma Storage_Size applies to the base
---       type. Points to the entity for a variable that is created to
---       hold the value given in a Storage_Size pragma for an access
---       collection or a task type. Note that in the access type case,
---       this field is defined only in the root type (since derived types
---       share the same storage pool).
-
 --    Static_Elaboration_Desired (Flag77)
 --       Defined in library-level packages. Set by the pragma of the same
 --       name, to indicate that static initialization must be attempted for
@@ -3933,6 +3924,15 @@ package Einfo is
 --       This attribute uses the same field as Overridden_Operation, which is
 --       irrelevant in init_procs.
 
+--    Storage_Size_Variable (Node15) [implementation base type only]
+--       Defined in access types and task type entities. This flag is set
+--       if a valid and effective pragma Storage_Size applies to the base
+--       type. Points to the entity for a variable that is created to
+--       hold the value given in a Storage_Size pragma for an access
+--       collection or a task type. Note that in the access type case,
+--       this field is defined only in the root type (since derived types
+--       share the same storage pool).
+
 --    Stored_Constraint (Elist23)
 --       Defined in entities that can have discriminants (concurrent types
 --       subtypes, record types and subtypes, private types and subtypes,
@@ -3940,6 +3940,10 @@ package Einfo is
 --       to an element list containing the expressions for each of the
 --       stored discriminants for the record (sub)type.
 
+--    Stores_Attribute_Old_Prefix (Flag270)
+--       Defined in constants. Set when the constant has been generated to save
+--       the value of attribute 'Old's prefix.
+
 --    Strict_Alignment (Flag145) [implementation base type only]
 --       Defined in all type entities. Indicates that some containing part
 --       is either aliased or tagged. This prohibits packing the object
@@ -5423,6 +5427,7 @@ package Einfo is
    --    Is_Return_Object                    (Flag209)
    --    Is_True_Constant                    (Flag163)
    --    Is_Volatile                         (Flag16)
+   --    Stores_Attribute_Old_Prefix         (Flag270)  (constants only)
    --    Optimize_Alignment_Space            (Flag241)  (constants only)
    --    Optimize_Alignment_Time             (Flag242)  (constants only)
    --    Treat_As_Volatile                   (Flag41)
@@ -6778,6 +6783,7 @@ package Einfo is
    function Status_Flag_Or_Transient_Decl       (Id : E) return E;
    function Storage_Size_Variable               (Id : E) return E;
    function Stored_Constraint                   (Id : E) return L;
+   function Stores_Attribute_Old_Prefix         (Id : E) return B;
    function Strict_Alignment                    (Id : E) return B;
    function String_Literal_Length               (Id : E) return U;
    function String_Literal_Low_Bound            (Id : E) return N;
@@ -7410,6 +7416,7 @@ package Einfo is
    procedure Set_Status_Flag_Or_Transient_Decl   (Id : E; V : E);
    procedure Set_Storage_Size_Variable           (Id : E; V : E);
    procedure Set_Stored_Constraint               (Id : E; V : L);
+   procedure Set_Stores_Attribute_Old_Prefix     (Id : E; V : B := True);
    procedure Set_Strict_Alignment                (Id : E; V : B := True);
    procedure Set_String_Literal_Length           (Id : E; V : U);
    procedure Set_String_Literal_Low_Bound        (Id : E; V : N);
@@ -8192,6 +8199,7 @@ package Einfo is
    pragma Inline (Status_Flag_Or_Transient_Decl);
    pragma Inline (Storage_Size_Variable);
    pragma Inline (Stored_Constraint);
+   pragma Inline (Stores_Attribute_Old_Prefix);
    pragma Inline (Strict_Alignment);
    pragma Inline (String_Literal_Length);
    pragma Inline (String_Literal_Low_Bound);
@@ -8623,6 +8631,7 @@ package Einfo is
    pragma Inline (Set_Status_Flag_Or_Transient_Decl);
    pragma Inline (Set_Storage_Size_Variable);
    pragma Inline (Set_Stored_Constraint);
+   pragma Inline (Set_Stores_Attribute_Old_Prefix);
    pragma Inline (Set_Strict_Alignment);
    pragma Inline (Set_String_Literal_Length);
    pragma Inline (Set_String_Literal_Low_Bound);
index a0a147fd11b05bb2725ab635052e5a521e07f395..0232d67e0c69ac72393d1161d089d06ebc49d6b5 100644 (file)
@@ -4060,6 +4060,12 @@ package body Exp_Attr is
       begin
          Temp := Make_Temporary (Loc, 'T', Pref);
 
+         --  Set the entity kind now in order to mark the temporary as a
+         --  handler of attribute 'Old's prefix.
+
+         Set_Ekind (Temp, E_Constant);
+         Set_Stores_Attribute_Old_Prefix (Temp);
+
          --  Climb the parent chain looking for subprogram _Postconditions
 
          Subp := N;
index 1aba5fdc82b672629c8f72d45dcebf160dd1f030..1eab27510ee62fbe60b5e1e37a7c244a32f923e8 100644 (file)
@@ -62,6 +62,9 @@ extern "C" {
 /* __gnat_initialize (NT-mingw32 Version) */
 /******************************************/
 
+char __gnat_wide_text_translation_required = 0;
+// wide text translation, 0=none, 1=activated
+
 #if defined (__MINGW32__)
 #include "mingw32.h"
 #include <windows.h>
index 0e809ab4fa20e7d39118a5bf1a26e0e0586cebf8..faa7031584f3ee5d41a1544dec2a3f70c6f10811 100644 (file)
@@ -123,7 +123,7 @@ package System.CRTL is
    pragma Import (C, fputc, "fputc");
 
    function fputwc (C : int; stream : FILEs) return int;
-   pragma Import (C, fputwc, "fputwc");
+   pragma Import (C, fputwc, "__gnat_fputwc");
 
    function fputs (Strng : chars; Stream : FILEs) return int;
    pragma Import (C, fputs, "fputs");
index ef2c935f34185febde2f9b744fe2f1fede933aa8..e6baee0f0498b7c6f9d1c98a2247e975de814113 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2011-2012, Free Software Foundation, Inc.         --
+--          Copyright (C) 2011-2014, 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- --
@@ -66,9 +66,22 @@ package body System.Storage_Pools.Subpools.Finalization is
 
       Free (Subpool.Node);
 
-      --  Dispatch to the user-defined implementation of Deallocate_Subpool
-
-      Deallocate_Subpool (Pool_Of_Subpool (Subpool).all, Subpool);
+      --  Dispatch to the user-defined implementation of Deallocate_Subpool. It
+      --  is important to first set Subpool.Owner to null, because RM-13.11.5
+      --  requires that "The subpool no longer belongs to any pool" BEFORE
+      --  calling Deallocate_Subpool. The actual dispatching call required is:
+      --
+      --     Deallocate_Subpool(Pool_of_Subpool(Subpool).all, Subpool);
+      --
+      --  but that can't be taken literally, because Pool_of_Subpool will
+      --  return null.
+
+      declare
+         Owner : constant Any_Storage_Pool_With_Subpools_Ptr := Subpool.Owner;
+      begin
+         Subpool.Owner := null;
+         Deallocate_Subpool (Owner.all, Subpool);
+      end;
 
       Subpool := null;
    end Finalize_And_Deallocate;
index cf43f2232d3d7c4e9f31803dc7233c121e0a98f8..31e8a7e0229f6b8c578c59f36506e06b8ce3192b 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 2011-2012, Free Software Foundation, Inc.         --
+--          Copyright (C) 2011-2014, 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- --
@@ -456,11 +456,13 @@ package body System.Storage_Pools.Subpools is
    ------------------------------
 
    function Default_Subpool_For_Pool
-     (Pool : Root_Storage_Pool_With_Subpools) return not null Subpool_Handle
+     (Pool : in out Root_Storage_Pool_With_Subpools)
+      return not null Subpool_Handle
    is
+      pragma Unreferenced (Pool);
    begin
-      raise Program_Error;
-      return Pool.Subpools.Subpool;
+      return raise Program_Error with
+        "default Default_Subpool_For_Pool called; must be overridden";
    end Default_Subpool_For_Pool;
 
    ------------
index c80dd9e3446277802ba5a32bd9d843b0acb78acc..68f6b17920dea445ed5987311b63fd9aa0c2ec5d 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 2011-2012, Free Software Foundation, Inc.         --
+--          Copyright (C) 2011-2014, Free Software Foundation, Inc.         --
 --                                                                          --
 -- This specification is derived from the Ada Reference Manual for use with --
 -- GNAT. The copyright notice above, and the license provisions that follow --
@@ -95,16 +95,16 @@ package System.Storage_Pools.Subpools is
      (Pool    : in out Root_Storage_Pool_With_Subpools;
       Subpool : in out Subpool_Handle)
    is abstract;
+   --  This precondition causes errors in simple tests, disabled for now???
+   --  with Pre'Class => Pool_Of_Subpool (Subpool) = Pool'Access;
 
-   --  ??? This precondition causes errors in simple tests, disabled for now
-
-   --      with Pre'Class => Pool_Of_Subpool (Subpool) = Pool'Access;
    --  This routine requires implementation. Reclaim the storage a particular
    --  subpool occupies in a pool_with_subpools. This routine is called by
    --  Ada.Unchecked_Deallocate_Subpool.
 
    function Default_Subpool_For_Pool
-     (Pool : Root_Storage_Pool_With_Subpools) return not null Subpool_Handle;
+     (Pool : in out Root_Storage_Pool_With_Subpools)
+      return not null Subpool_Handle;
    --  Return a common subpool which is used for object allocations without a
    --  Subpool_Handle_name in the allocator. The default implementation of this
    --  routine raises Program_Error.
index b11b10a90ec0dc7e6b264ff20cb3fa601251a6db..0fe19377dbcc220a13d92db2084dfbcc36e35b5c 100644 (file)
@@ -2279,7 +2279,8 @@ package body Sem_Aggr is
                   --  is fine, it's just the wrong length. We skip this check
                   --  for standard character types (since there are no literals
                   --  and it is too much trouble to concoct them), and also if
-                  --  any of the bounds have not-known-at-compile-time values.
+                  --  any of the bounds have values that are not known at
+                  --  compile time.
 
                   --  Another case warranting a warning is when the length is
                   --  right, but as above we have an index type that is an
index 5a48f0e815c840e5de8d9cd713933ea82f36e681..9cb42b956b9be96f3fab7cdf3fded8d56ab8dc57 100644 (file)
@@ -6349,6 +6349,7 @@ package body Sem_Attr is
 
                            else
                               Analyze_And_Resolve (Index, Etype (Index_Type));
+
                               if not Is_OK_Static_Expression (Index) then
                                  Set_Do_Range_Check (Index);
                               end if;
index 7ade48345b5bcc6f3c33fed7017f7d6ff14acfd5..207e28ac2cea4beaef75a4bca30cf2950abe84c8 100644 (file)
@@ -367,9 +367,10 @@ package Sem_Eval is
    function Eval_Static_Predicate_Check
      (N   : Node_Id;
       Typ : Entity_Id) return Boolean;
-   --  Evaluate a static predicate check applied to a known-at-compile-time
-   --  value N, which can be of a discrete, real, or string type. The caller
-   --  has checked that a static predicate does apply to Typ.
+   --  Evaluate a static predicate check applied expression which represents
+   --  a value that is known at compile time (does not have to be static). The
+   --  caller has checked that a static predicate does apply to Typ, and thus
+   --  the type is known to be scalar.
 
    procedure Fold_Str (N : Node_Id; Val : String_Id; Static : Boolean);
    --  Rewrite N with a new N_String_Literal node as the result of the compile
index a1f6f9fc80c3444accd3aa94e746a197549cd4ae..c32d89bbf81a206aa02611c829003aab4f68649d 100644 (file)
@@ -21937,9 +21937,9 @@ package body Sem_Prag is
 
                Item_Id := Available_View (Entity_Of (Item));
 
-               return
-                 Ekind (Item_Id) = E_Abstract_State
-                   and then Has_Null_Refinement (Item_Id);
+               return Ekind (Item_Id) = E_Abstract_State
+                 and then Has_Null_Refinement (Item_Id);
+
             else
                return False;
             end if;
@@ -22146,8 +22146,8 @@ package body Sem_Prag is
 
          if not Clause_Matched
            and then Is_In_Out_State_Clause
-           and then Contains
-                      (Matched_Items, Available_View (Entity_Of (Dep_Input)))
+           and then
+             Contains (Matched_Items, Available_View (Entity_Of (Dep_Input)))
          then
             Clause_Matched := True;
          end if;
@@ -22163,8 +22163,8 @@ package body Sem_Prag is
          if not Clause_Matched
            and then Is_Null_Refined_State (Dep_Input)
            and then Is_Entity_Name (Dep_Output)
-           and then Contains
-                      (Matched_Items, Available_View (Entity_Of (Dep_Output)))
+           and then
+             Contains (Matched_Items, Available_View (Entity_Of (Dep_Output)))
          then
             Clause_Matched := True;
          end if;
@@ -22180,8 +22180,8 @@ package body Sem_Prag is
          if not Clause_Matched
            and then Is_Null_Refined_State (Dep_Output)
            and then Is_Entity_Name (Dep_Input)
-           and then Contains
-                      (Matched_Items, Available_View (Entity_Of (Dep_Input)))
+           and then
+             Contains (Matched_Items, Available_View (Entity_Of (Dep_Input)))
          then
             Clause_Matched := True;
          end if;
index 34f68fe63c9f012f5d67baadac57cca3f3bfe51e..ccebfe49e62a4406e2a9201cfd1612adca207a9b 100644 (file)
@@ -3477,12 +3477,13 @@ package body Sem_Util is
 
          --  In Ada 2012, If the type has an incomplete partial view, there
          --  may be primitive operations declared before the full view, so
-         --  we need to start scanning from the incomplete view.
+         --  we need to start scanning from the the incomplete view, which
+         --  is earlier on the entity chain.
 
          elsif Nkind (Parent (B_Type)) = N_Full_Type_Declaration
            and then Present (Incomplete_View (Parent (B_Type)))
          then
-            Id := Defining_Entity (Next (Incomplete_View (Parent (B_Type))));
+            Id := Defining_Entity (Incomplete_View (Parent (B_Type)));
 
          else
             Id := Next_Entity (B_Type);
@@ -8695,6 +8696,19 @@ package body Sem_Util is
             Prag := Original_Node (Par);
             exit;
 
+         --  The expansion of attribute 'Old generates a constant to capture
+         --  the result of the prefix. If the parent traversal reaches
+         --  one of these constants, then the node technically came from a
+         --  postcondition-like pragma. Note that the Ekind is not tested here
+         --  because N may be the expression of an object declaration which is
+         --  currently being analyzed. Such objects carry Ekind of E_Void.
+
+         elsif Nkind (Par) = N_Object_Declaration
+           and then Constant_Present (Par)
+           and then Stores_Attribute_Old_Prefix (Defining_Entity (Par))
+         then
+            return True;
+
          --  Prevent the search from going too far
 
          elsif Is_Body_Or_Package_Declaration (Par) then
index 31c61e5b1b7ce1798fbc10e6b563aeba0f81aa37..86d953059486717684ab0015b405413c7169ae1a 100644 (file)
@@ -1867,16 +1867,16 @@ package Sinfo is
 
    --  Parameter_List_Truncated (Flag17-Sem)
    --    Present in N_Function_Call and N_Procedure_Call_Statement nodes. Set
-   --    (for OpenVMS ports of GNAT only) if the parameter list is truncated as
-   --    a result of a First_Optional_Parameter specification in an
-   --    Import_Function, Import_Procedure, or Import_Valued_Procedure pragma.
+   --    (for OpenVMS ports of GNAT only) if the parameter list is truncated
+   --    as a result of a First_Optional_Parameter specification in one of the
+   --    pragmas Import_Function, Import_Procedure, or Import_Valued_Procedure.
    --    The truncation is done by the expander by removing trailing parameters
    --    from the argument list, in accordance with the set of rules allowing
    --    such parameter removal. In particular, parameters can be removed
    --    working from the end of the parameter list backwards up to and
    --    including the entry designated by First_Optional_Parameter in the
    --    Import pragma. Parameters can be removed if they are implicit and the
-   --    default value is a known-at-compile-time value, including the use of
+   --    default value is known at compile time value, including the use of
    --    the Null_Parameter attribute, or if explicit parameter values are
    --    present that match the corresponding defaults.
 
index 590a2ea5b984bf1d426a0f415aad2ec675e743c1..693fec2c4b57a01719403c6ac71f012ad43caa79 100644 (file)
@@ -131,7 +131,6 @@ extern struct tm *localtime_r(const time_t *, struct tm *);
 #if defined (WINNT) || defined (__CYGWIN__)
 
 const char __gnat_text_translation_required = 1;
-char __gnat_wide_text_translation_required = 0;
 
 #ifdef __CYGWIN__
 #define WIN_SETMODE setmode
@@ -241,7 +240,6 @@ __gnat_ttyname (int filedes)
 #else
 
 const char __gnat_text_translation_required = 0;
-const char __gnat_wide_text_translation_required = 0;
 
 /* These functions do nothing in non-DOS systems. */