diff options
Diffstat (limited to 'gcc/ada/gcc-interface/gigi.h')
-rw-r--r-- | gcc/ada/gcc-interface/gigi.h | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/gcc/ada/gcc-interface/gigi.h b/gcc/ada/gcc-interface/gigi.h index 30fa99e96d5..143926160ac 100644 --- a/gcc/ada/gcc-interface/gigi.h +++ b/gcc/ada/gcc-interface/gigi.h @@ -450,8 +450,8 @@ extern void set_block_jmpbuf_decl (tree decl); /* Get the setjmp_decl, if any, for the current binding level. */ extern tree get_block_jmpbuf_decl (void); -/* Records a ..._DECL node DECL as belonging to the current lexical scope - and uses GNAT_NODE for location information. */ +/* Record DECL as belonging to the current lexical scope and use GNAT_NODE + for location information and flag propagation. */ extern void gnat_pushdecl (tree decl, Node_Id gnat_node); extern void gnat_init_gcc_eh (void); @@ -479,6 +479,9 @@ extern tree gnat_signed_type (tree type_node); transparently converted to each other. */ extern int gnat_types_compatible_p (tree t1, tree t2); +/* Return true if EXPR is a useless type conversion. */ +extern bool gnat_useless_type_conversion (tree expr); + /* Return true if T, a FUNCTION_TYPE, has the specified list of flags. */ extern bool fntype_same_flags_p (const_tree, tree, bool, bool, bool); @@ -489,6 +492,10 @@ extern bool fntype_same_flags_p (const_tree, tree, bool, bool, bool); not permitted by the language being compiled. */ extern tree convert (tree type, tree expr); +/* Create an expression whose value is that of EXPR converted to the common + index type, which is sizetype. */ +extern tree convert_to_index_type (tree expr); + /* Routines created solely for the tree translator's sake. Their prototypes can be changed as desired. */ @@ -687,9 +694,12 @@ extern tree create_subprog_decl (tree subprog_name, tree asm_name, appearing in the subprogram. */ extern void begin_subprog_body (tree subprog_decl); -/* Finish the definition of the current subprogram BODY and finalize it. */ +/* Finish translating the current subprogram and set its BODY. */ extern void end_subprog_body (tree body); +/* Wrap up compilation of SUBPROG_DECL, a subprogram body. */ +extern void rest_of_subprog_body_compilation (tree subprog_decl); + /* Build a template of type TEMPLATE_TYPE from the array bounds of ARRAY_TYPE. EXPR is an expression that we can use to locate any PLACEHOLDER_EXPRs. Return a constructor for the template. */ @@ -910,6 +920,11 @@ extern tree gnat_protect_expr (tree exp); through something we don't know how to stabilize. */ extern tree gnat_stabilize_reference (tree ref, bool force, bool *success); +/* If EXPR is an expression that is invariant in the current function, in the + sense that it can be evaluated anywhere in the function and any number of + times, return EXPR or an equivalent expression. Otherwise return NULL. */ +extern tree gnat_invariant_expr (tree expr); + /* Implementation of the builtin_function langhook. */ extern tree gnat_builtin_function (tree decl); |