diff options
Diffstat (limited to 'gcc/ada/gigi.h')
| -rw-r--r-- | gcc/ada/gigi.h | 42 |
1 files changed, 12 insertions, 30 deletions
diff --git a/gcc/ada/gigi.h b/gcc/ada/gigi.h index 99b858b..ae1ba2a 100644 --- a/gcc/ada/gigi.h +++ b/gcc/ada/gigi.h @@ -36,11 +36,6 @@ extern unsigned int largest_move_alignment; /* Declare all functions and types used by gigi. */ -/* See if DECL has an RTL that is indirect via a pseudo-register or a - memory location and replace it with an indirect reference if so. - This improves the debugger's ability to display the value. */ -extern void adjust_decl_rtl (tree); - /* Record the current code position in GNAT_NODE. */ extern void record_code_position (Node_Id); @@ -94,6 +89,13 @@ extern tree gnat_to_gnu_entity (Entity_Id, tree, int); refer to an Ada type. */ extern tree gnat_to_gnu_type (Entity_Id); +/* Add GNU_STMT to the current BLOCK_STMT node. */ +extern void add_stmt (tree); + +/* Add a declaration statement for GNU_DECL to the current BLOCK_STMT node. + Get SLOC from Entity_Id. */ +extern void add_decl_stmt (tree, Entity_Id); + /* Given GNAT_ENTITY, elaborate all expressions that are required to be elaborated at the point of its definition, but do nothing else. */ extern void elaborate_entity (Entity_Id); @@ -381,37 +383,17 @@ extern int global_bindings_p (void); is in reverse order (it has to be so for back-end compatibility). */ extern tree getdecls (void); -/* Nonzero if the current level needs to have a BLOCK made. */ -extern int kept_level_p (void); - -/* Enter a new binding level. The input parameter is ignored, but has to be - specified for back-end compatibility. */ -extern void pushlevel (int); - -/* Exit a binding level. - Pop the level off, and restore the state of the identifier-decl mappings - that were in effect when this level was entered. - - If KEEP is nonzero, this level had explicit declarations, so - and create a "block" (a BLOCK node) for the level - to record its declarations and subblocks for symbol table output. - - If FUNCTIONBODY is nonzero, this level is the body of a function, - so create a block as if KEEP were set and also clear out all - label names. - - If REVERSE is nonzero, reverse the order of decls before putting - them into the BLOCK. */ -extern tree poplevel (int, int, int); +/* Enter and exit a new binding level. */ +extern void gnat_pushlevel (void); +extern void gnat_poplevel (void); /* Insert BLOCK at the end of the list of subblocks of the current binding level. This is used when a BIND_EXPR is expanded, to handle the BLOCK node inside the BIND_EXPR. */ extern void insert_block (tree); -/* Set the BLOCK node for the innermost scope - (the one we are currently in). */ -extern void set_block (tree); +/* Return nonzero if the are any variables in the current block. */ +extern int block_has_vars (void); /* Records a ..._DECL node DECL as belonging to the current lexical scope. Returns the ..._DECL node. */ |
