diff gcc/ada/exp_ch3.ads @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
line wrap: on
line diff
--- a/gcc/ada/exp_ch3.ads	Fri Oct 27 22:46:09 2017 +0900
+++ b/gcc/ada/exp_ch3.ads	Thu Oct 25 07:37:49 2018 +0900
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 S p e c                                  --
 --                                                                          --
---          Copyright (C) 1992-2017, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2018, 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- --
@@ -84,6 +84,13 @@
    --  Constructor_Ref is a call to a constructor subprogram. It is currently
    --  used only to support C++ constructors.
 
+   function Build_Variant_Record_Equality
+     (Typ         : Entity_Id;
+      Body_Id     : Entity_Id;
+      Param_Specs : List_Id) return Node_Id;
+   --  Build the body of the equality function Body_Id for the untagged variant
+   --  record Typ with the given parameters specification list.
+
    function Freeze_Type (N : Node_Id) return Boolean;
    --  This function executes the freezing actions associated with the given
    --  freeze type node N and returns True if the node is to be deleted. We
@@ -91,6 +98,26 @@
    --  want Gigi to see the node. This function can't delete the node itself
    --  since it would confuse any remaining processing of the freeze node.
 
+   function Get_Simple_Init_Val
+     (Typ  : Entity_Id;
+      N    : Node_Id;
+      Size : Uint := No_Uint) return Node_Id;
+   --  Build an expression which represents the required initial value of type
+   --  Typ for which predicate Needs_Simple_Initialization is True. N is a node
+   --  whose source location used in the construction of the expression. Size
+   --  is utilized as follows:
+   --
+   --    * If the size of the object to be initialized it is known, it should
+   --      be passed to the routine.
+   --
+   --    * If the size is unknown or is zero, then the Esize of Typ is used as
+   --      an estimate of the size.
+   --
+   --  The object size is needed to prepare a known invalid value for use by
+   --  Normalize_Scalars. A call to this routine where Typ denotes a scalar
+   --  type is only valid when Normalize_Scalars or Initialize_Scalars is
+   --  active, or if N is the node for a 'Invalid_Value attribute node.
+
    procedure Init_Secondary_Tags
      (Typ            : Entity_Id;
       Target         : Node_Id;
@@ -114,33 +141,4 @@
    --  clause the assignment is handled as part of the freezing of the object,
    --  see Check_Address_Clause.
 
-   function Needs_Simple_Initialization
-     (T           : Entity_Id;
-      Consider_IS : Boolean := True) return Boolean;
-   --  Certain types need initialization even though there is no specific
-   --  initialization routine:
-   --    Access types (which need initializing to null)
-   --    All scalar types if Normalize_Scalars mode set
-   --    Descendants of standard string types if Normalize_Scalars mode set
-   --    Scalar types having a Default_Value attribute
-   --  Regarding Initialize_Scalars mode, this is ignored if Consider_IS is
-   --  set to False, but if Consider_IS is set to True, then the cases above
-   --  mentioning Normalize_Scalars also apply for Initialize_Scalars mode.
-
-   function Get_Simple_Init_Val
-     (T    : Entity_Id;
-      N    : Node_Id;
-      Size : Uint := No_Uint) return Node_Id;
-   --  For a type which Needs_Simple_Initialization (see above), prepares the
-   --  tree for an expression representing the required initial value. N is a
-   --  node whose source location used in constructing this tree which is
-   --  returned as the result of the call. The Size parameter indicates the
-   --  target size of the object if it is known (indicated by a value that is
-   --  not No_Uint and is greater than zero). If Size is not given (Size set to
-   --  No_Uint, or non-positive), then the Esize of T is used as an estimate of
-   --  the Size. The object size is needed to prepare a known invalid value for
-   --  use by Normalize_Scalars. A call to this routine where T is a scalar
-   --  type is only valid if we are in Normalize_Scalars or Initialize_Scalars
-   --  mode, or if N is the node for a 'Invalid_Value attribute node.
-
 end Exp_Ch3;