gigi.h (create_var_decl_1): Declare.
authorEric Botcazou <ebotcazou@adacore.com>
Fri, 18 Apr 2008 09:19:38 +0000 (09:19 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Fri, 18 Apr 2008 09:19:38 +0000 (09:19 +0000)
* gigi.h (create_var_decl_1): Declare.
(create_var_decl): Turn into a macro invoking create_var_decl_1.
(create_true_var_decl): Likewise.
* utils.c (create_var_decl_1): Make global and reorder parameters.
(create_var_decl): Delete.
(create_true_var_decl): Likewise.

From-SVN: r134429

gcc/ada/ChangeLog
gcc/ada/gigi.h
gcc/ada/utils.c

index 6bffe2a0076e256893cc286e438a29b46cb3ca90..674c299cb18820166847cc0637c4ff83cc0743e2 100644 (file)
@@ -1,3 +1,12 @@
+2008-04-18  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gigi.h (create_var_decl_1): Declare.
+       (create_var_decl): Turn into a macro invoking create_var_decl_1.
+       (create_true_var_decl): Likewise.
+       * utils.c (create_var_decl_1): Make global and reorder parameters.
+       (create_var_decl): Delete.
+       (create_true_var_decl): Likewise.
+
 2008-04-17  Eric Botcazou  <ebotcazou@adacore.com>
 
        * decl.c (gnat_to_gnu_entity) <object>: Promote the alignment of
index 4ca53df753003352eb83ff403be50c9a5837f295..2515cedda136352f79dbba0d983f3ee641165b25 100644 (file)
@@ -564,36 +564,51 @@ extern tree create_type_decl (tree type_name, tree type,
                               bool artificial_p, bool debug_info_p,
                              Node_Id gnat_node);
 
-/* Returns a GCC VAR_DECL or CONST_DECL node.
+/* Return a VAR_DECL or CONST_DECL node.
 
    VAR_NAME gives the name of the variable.  ASM_NAME is its assembler name
    (if provided).  TYPE is its data type (a GCC ..._TYPE node).  VAR_INIT is
    the GCC tree for an optional initial expression; NULL_TREE if none.
 
-   CONST_FLAG is true if this variable is constant.
+   CONST_FLAG is true if this variable is constant, in which case we might
+   return a CONST_DECL node unless CONST_DECL_ALLOWED_P is false.
 
    PUBLIC_FLAG is true if this definition is to be made visible outside of
    the current compilation unit. This flag should be set when processing the
-   variable definitions in a package specification.  EXTERN_FLAG is nonzero
-   when processing an external variable declaration (as opposed to a
-   definition: no storage is to be allocated for the variable here).
+   variable definitions in a package specification.
+
+   EXTERN_FLAG is nonzero when processing an external variable declaration (as
+   opposed to a definition: no storage is to be allocated for the variable).
 
    STATIC_FLAG is only relevant when not at top level.  In that case
    it indicates whether to always allocate storage to the variable.
 
    GNAT_NODE is used for the position of the decl.  */
-extern tree create_var_decl (tree var_name, tree asm_name, tree type,
-                             tree var_init, bool const_flag,
-                             bool public_flag, bool extern_flag,
-                             bool static_flag,
-                            struct attrib *attr_list, Node_Id gnat_node);
-
-/* Similar to create_var_decl, forcing the creation of a VAR_DECL node.  */
-extern tree create_true_var_decl (tree var_name, tree asm_name, tree type,
-                                 tree var_init, bool const_flag,
-                                 bool public_flag, bool extern_flag,
-                                 bool static_flag,
-                                 struct attrib *attr_list, Node_Id gnat_node);
+tree
+create_var_decl_1 (tree var_name, tree asm_name, tree type, tree var_init,
+                  bool const_flag, bool public_flag, bool extern_flag,
+                  bool static_flag, bool const_decl_allowed_p,
+                  struct attrib *attr_list, Node_Id gnat_node);
+
+/* Wrapper around create_var_decl_1 for cases where we don't care whether
+   a VAR or a CONST decl node is created.  */
+#define create_var_decl(var_name, asm_name, type, var_init,    \
+                       const_flag, public_flag, extern_flag,   \
+                       static_flag, attr_list, gnat_node)      \
+  create_var_decl_1 (var_name, asm_name, type, var_init,       \
+                    const_flag, public_flag, extern_flag,      \
+                    static_flag, true, attr_list, gnat_node)
+
+/* Wrapper around create_var_decl_1 for cases where a VAR_DECL node is
+   required.  The primary intent is for DECL_CONST_CORRESPONDING_VARs, which
+   must be VAR_DECLs and on which we want TREE_READONLY set to have them
+   possibly assigned to a readonly data section.  */
+#define create_true_var_decl(var_name, asm_name, type, var_init,       \
+                            const_flag, public_flag, extern_flag,      \
+                            static_flag, attr_list, gnat_node)         \
+  create_var_decl_1 (var_name, asm_name, type, var_init,               \
+                    const_flag, public_flag, extern_flag,              \
+                    static_flag, false, attr_list, gnat_node)
 
 /* Given a DECL and ATTR_LIST, apply the listed attributes.  */
 extern void process_attributes (tree decl, struct attrib *attr_list);
index 96a85586433317cbfe7e47b17d03fe6e08d2c94f..cafcc2d9770858a1f82a1e44aac53706716dd340 100644 (file)
@@ -1418,31 +1418,31 @@ create_type_decl (tree type_name, tree type, struct attrib *attr_list,
   return type_decl;
 }
 
-/* Helper for create_var_decl and create_true_var_decl. Returns a GCC VAR_DECL
-   or CONST_DECL node.
+/* Return a VAR_DECL or CONST_DECL node.
 
    VAR_NAME gives the name of the variable.  ASM_NAME is its assembler name
    (if provided).  TYPE is its data type (a GCC ..._TYPE node).  VAR_INIT is
    the GCC tree for an optional initial expression; NULL_TREE if none.
 
    CONST_FLAG is true if this variable is constant, in which case we might
-   return a CONST_DECL node unless CONST_DECL_ALLOWED_FLAG is false.
+   return a CONST_DECL node unless CONST_DECL_ALLOWED_P is false.
 
    PUBLIC_FLAG is true if this definition is to be made visible outside of
    the current compilation unit. This flag should be set when processing the
-   variable definitions in a package specification.  EXTERN_FLAG is nonzero
-   when processing an external variable declaration (as opposed to a
-   definition: no storage is to be allocated for the variable here).
+   variable definitions in a package specification.
+
+   EXTERN_FLAG is nonzero when processing an external variable declaration (as
+   opposed to a definition: no storage is to be allocated for the variable).
 
    STATIC_FLAG is only relevant when not at top level.  In that case
    it indicates whether to always allocate storage to the variable.
 
    GNAT_NODE is used for the position of the decl.  */
 
-static tree
+tree
 create_var_decl_1 (tree var_name, tree asm_name, tree type, tree var_init,
-                  bool const_flag, bool const_decl_allowed_flag,
-                  bool public_flag, bool extern_flag, bool static_flag,
+                  bool const_flag, bool public_flag, bool extern_flag,
+                  bool static_flag, bool const_decl_allowed_p,
                   struct attrib *attr_list, Node_Id gnat_node)
 {
   bool init_const
@@ -1464,7 +1464,7 @@ create_var_decl_1 (tree var_name, tree asm_name, tree type, tree var_init,
   /* The actual DECL node.  CONST_DECL was initially intended for enumerals
      and may be used for scalars in general but not for aggregates.  */
   tree var_decl
-    = build_decl ((constant_p && const_decl_allowed_flag
+    = build_decl ((constant_p && const_decl_allowed_p
                   && !AGGREGATE_TYPE_P (type)) ? CONST_DECL : VAR_DECL,
                  var_name, type);
 
@@ -1528,38 +1528,6 @@ create_var_decl_1 (tree var_name, tree asm_name, tree type, tree var_init,
 
   return var_decl;
 }
-
-/* Wrapper around create_var_decl_1 for cases where we don't care whether
-   a VAR or a CONST decl node is created.  */
-
-tree
-create_var_decl (tree var_name, tree asm_name, tree type, tree var_init,
-                bool const_flag, bool public_flag, bool extern_flag,
-                bool static_flag, struct attrib *attr_list,
-                Node_Id gnat_node)
-{
-  return create_var_decl_1 (var_name, asm_name, type, var_init,
-                           const_flag, true,
-                           public_flag, extern_flag, static_flag,
-                           attr_list, gnat_node);
-}
-
-/* Wrapper around create_var_decl_1 for cases where a VAR_DECL node is
-   required.  The primary intent is for DECL_CONST_CORRESPONDING_VARs, which
-   must be VAR_DECLs and on which we want TREE_READONLY set to have them
-   possibly assigned to a readonly data section.  */
-
-tree
-create_true_var_decl (tree var_name, tree asm_name, tree type, tree var_init,
-                     bool const_flag, bool public_flag, bool extern_flag,
-                     bool static_flag, struct attrib *attr_list,
-                     Node_Id gnat_node)
-{
-  return create_var_decl_1 (var_name, asm_name, type, var_init,
-                           const_flag, false,
-                           public_flag, extern_flag, static_flag,
-                           attr_list, gnat_node);
-}
 \f
 /* Return true if TYPE, an aggregate type, contains (or is) an array.  */