OSDN Git Service

* gcc-interface/gigi.h (standard_datatypes): Add ADT_parent_name_id.
[pf3gnuchains/gcc-fork.git] / gcc / ada / gcc-interface / gigi.h
index 224abe8..d9459e5 100644 (file)
@@ -85,7 +85,7 @@ extern void mark_visited (tree t);
 
 #define MARK_VISITED(EXP)              \
 do {                                   \
-  if((EXP) && !CONSTANT_CLASS_P (EXP)) \
+  if((EXP) && !TREE_CONSTANT (EXP))    \
     mark_visited (EXP);                        \
 } while (0)
 
@@ -168,18 +168,12 @@ extern tree create_concat_name (Entity_Id gnat_entity, const char *suffix);
    the name followed by "___" and the specified suffix.  */
 extern tree concat_name (tree gnu_name, const char *suffix);
 
-/* Highest number in the front-end node table.  */
-extern int max_gnat_nodes;
-
-/* Current node being treated, in case abort called.  */
-extern Node_Id error_gnat_node;
-
-/* True when gigi is being called on an analyzed but unexpanded
-   tree, and the only purpose of the call is to properly annotate
-   types with representation information.  */
+/* If true, then gigi is being called on an analyzed but unexpanded tree, and
+   the only purpose of the call is to properly annotate types with
+   representation information.  */
 extern bool type_annotate_only;
 
-/* Current file name without path */
+/* Current file name without path */
 extern const char *ref_filename;
 
 /* This structure must be kept synchronized with Call_Back_End.  */
@@ -190,9 +184,11 @@ struct File_Info_Type
 };
 
 /* This is the main program of the back-end.  It sets up all the table
-   structures and then generates code.  */
-extern void gigi (Node_Id gnat_root, int max_gnat_node,
-                  int number_name ATTRIBUTE_UNUSED,
+   structures and then generates code.
+
+   ??? Needs parameter descriptions  */
+
+extern void gigi (Node_Id gnat_root, int max_gnat_node, int number_name,
                   struct Node *nodes_ptr, Node_Id *next_node_ptr,
                   Node_Id *prev_node_ptr, struct Elist_Header *elists_ptr,
                   struct Elmt_Item *elmts_ptr,
@@ -232,25 +228,28 @@ extern bool Sloc_to_locus (Source_Ptr Sloc, location_t *locus);
 
 /* Post an error message.  MSG is the error message, properly annotated.
    NODE is the node at which to post the error and the node to use for the
-   '&' substitution.  */
+   "&" substitution.  */
 extern void post_error (const char *msg, Node_Id node);
 
-/* Similar to post_error, but NODE is the node at which to post the error and
-   ENT is the node to use for the '&' substitution.  */
+/* Similar, but NODE is the node at which to post the error and ENT
+   is the node to use for the "&" substitution.  */
 extern void post_error_ne (const char *msg, Node_Id node, Entity_Id ent);
 
-/* Similar to post_error_ne, but NUM is the number to use for the '^'.  */
+/* Similar, but NODE is the node at which to post the error, ENT is the node
+   to use for the "&" substitution, and N is the number to use for the ^.  */
 extern void post_error_ne_num (const char *msg, Node_Id node, Entity_Id ent,
-                               int num);
+                               int n);
 
-/* Similar to post_error_ne, but T is a GCC tree representing the number to
-   write.  If T represents a constant, the text inside curly brackets in
-   MSG will be output (presumably including a '^').  Otherwise it will not
-   be output and the text inside square brackets will be output instead.  */
+/* Similar to post_error_ne_num, but T is a GCC tree representing the number
+   to write.  If the tree represents a constant that fits within a
+   host integer, the text inside curly brackets in MSG will be output
+   (presumably including a '^').  Otherwise that text will not be output
+   and the text inside square brackets will be output instead.  */
 extern void post_error_ne_tree (const char *msg, Node_Id node, Entity_Id ent,
                                 tree t);
 
-/* Similar to post_error_ne_tree, but NUM is a second integer to write.  */
+/* Similar to post_error_ne_tree, except that NUM is a second
+   integer to write in the message.  */
 extern void post_error_ne_tree_2 (const char *msg, Node_Id node, Entity_Id ent,
                                   tree t, int num);
 
@@ -258,6 +257,13 @@ extern void post_error_ne_tree_2 (const char *msg, Node_Id node, Entity_Id ent,
    if none.  */
 extern tree get_exception_label (char kind);
 
+/* Current node being treated, in case gigi_abort or Check_Elaboration_Code
+   called.  */
+extern Node_Id error_gnat_node;
+
+/* Highest number in the front-end node table.  */
+extern int max_gnat_nodes;
+
 /* If nonzero, pretend we are allocating at global level.  */
 extern int force_global;
 
@@ -356,15 +362,9 @@ enum standard_datatypes
   /* Type declaration node  <==> typedef virtual void *T() */
   ADT_fdesc_type,
 
-  /* Null pointer for above type */
+  /* Null pointer for above type */
   ADT_null_fdesc,
 
-  /* Value 1 in signed bitsizetype.  */
-  ADT_sbitsize_one_node,
-
-  /* Value BITS_PER_UNIT in signed bitsizetype.  */
-  ADT_sbitsize_unit_node,
-
   /* Function declaration nodes for run-time functions for allocating memory.
      Ada allocators cause calls to these functions to be generated.  Malloc32
      is used only on 64bit systems needing to allocate 32bit memory.  */
@@ -407,8 +407,6 @@ extern GTY(()) tree gnat_raise_decls[(int) LAST_REASON_CODE + 1];
 #define ptr_void_ftype gnat_std_decls[(int) ADT_ptr_void_ftype]
 #define fdesc_type_node gnat_std_decls[(int) ADT_fdesc_type]
 #define null_fdesc_node gnat_std_decls[(int) ADT_null_fdesc]
-#define sbitsize_one_node gnat_std_decls[(int) ADT_sbitsize_one_node]
-#define sbitsize_unit_node gnat_std_decls[(int) ADT_sbitsize_unit_node]
 #define malloc_decl gnat_std_decls[(int) ADT_malloc_decl]
 #define malloc32_decl gnat_std_decls[(int) ADT_malloc32_decl]
 #define free_decl gnat_std_decls[(int) ADT_free_decl]
@@ -452,6 +450,7 @@ extern tree get_block_jmpbuf_decl (void);
    and uses GNAT_NODE for location information.  */
 extern void gnat_pushdecl (tree decl, Node_Id gnat_node);
 
+extern void gnat_init_decl_processing (void);
 extern void gnat_init_gcc_eh (void);
 extern void gnat_install_builtins (void);
 
@@ -626,6 +625,9 @@ create_var_decl_1 (tree var_name, tree asm_name, tree type, tree 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);
+
 /* Record DECL as a global renaming pointer.  */
 extern void record_global_renaming_pointer (tree decl);