aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gigi.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/gigi.h')
-rw-r--r--gcc/ada/gigi.h32
1 files changed, 25 insertions, 7 deletions
diff --git a/gcc/ada/gigi.h b/gcc/ada/gigi.h
index 10a7012..1c1c161 100644
--- a/gcc/ada/gigi.h
+++ b/gcc/ada/gigi.h
@@ -380,9 +380,6 @@ enum standard_datatypes
extern GTY(()) tree gnat_std_decls[(int) ADT_LAST];
extern GTY(()) tree gnat_raise_decls[(int) LAST_REASON_CODE + 1];
-extern GTY(()) tree static_ctors;
-extern GTY(()) tree static_dtors;
-
#define longest_float_type_node gnat_std_decls[(int) ADT_longest_float_type]
#define void_type_decl_node gnat_std_decls[(int) ADT_void_type_decl]
#define except_type_node gnat_std_decls[(int) ADT_except_type]
@@ -448,6 +445,9 @@ extern tree gnat_type_for_size (unsigned precision, int unsignedp);
an unsigned type; otherwise a signed type is returned. */
extern tree gnat_type_for_mode (enum machine_mode mode, int unsignedp);
+/* Emit debug info for all global variable declarations. */
+extern void gnat_write_global_declarations (void);
+
/* Return the unsigned version of a TYPE_NODE, a scalar type. */
extern tree gnat_unsigned_type (tree type_node);
@@ -533,10 +533,11 @@ 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 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.
+/* Returns a GCC 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.
@@ -556,9 +557,22 @@ extern tree create_var_decl (tree var_name, tree asm_name, tree type,
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);
+
/* Given a DECL and ATTR_LIST, apply the listed attributes. */
extern void process_attributes (tree decl, struct attrib *attr_list);
+/* Record a global renaming pointer. */
+void record_global_renaming_pointer (tree);
+
+/* Invalidate the global renaming pointers. */
+void invalidate_global_renaming_pointers (void);
+
/* Returns a FIELD_DECL node. FIELD_NAME the field name, FIELD_TYPE is its
type, and RECORD_TYPE is the type of the parent. PACKED is nonzero if
this field is in a record type with a "pragma pack". If SIZE is nonzero
@@ -656,6 +670,10 @@ extern tree maybe_unconstrained_array (tree exp);
If NOTRUNC_P is true, truncation operations should be suppressed. */
extern tree unchecked_convert (tree type, tree expr, bool notrunc_p);
+/* Return the appropriate GCC tree code for the specified GNAT type,
+ the latter being a record type as predicated by Is_Record_Type. */
+extern enum tree_code tree_code_for_record_type (Entity_Id);
+
/* Prepare expr to be an argument of a TRUTH_NOT_EXPR or other logical
operation.