diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2010-09-19 13:48:51 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2010-09-19 13:48:51 +0000 |
commit | 2231f17fa0b742bec5fdcad0894d02af2ddab08c (patch) | |
tree | b62bef407ee1a1a7c6b27d747db9b145775e6634 /gcc/ada/gcc-interface/gigi.h | |
parent | a10623fb71eb10046cbd3d7ad7dc3b9cef781666 (diff) | |
download | gcc-2231f17fa0b742bec5fdcad0894d02af2ddab08c.zip gcc-2231f17fa0b742bec5fdcad0894d02af2ddab08c.tar.gz gcc-2231f17fa0b742bec5fdcad0894d02af2ddab08c.tar.bz2 |
gigi.h (get_elaboration_procedure): Declare.
* gcc-interface/gigi.h (get_elaboration_procedure): Declare.
(gnat_zaplevel): Likewise.
* gcc-interface/decl.c (gnat_to_gnu_entity): Do not force global
binding level for an external constant.
<E_Constant>: Force the local context and create a fake scope before
translating the defining expression of an external constant.
<object>: Treat external constants at the global level explicitly for
renaming declarations.
(elaborate_expression_1): Force the variable to be static if the
expression is global.
* gcc-interface/trans.c (get_elaboration_procedure): New function.
(call_to_gnu): Use it.
(gnat_to_gnu): Likewise.
<N_Object_Declaration>: Do not test Is_Public to force the creation of
an initialization variable.
(add_decl_expr): Discard the statement if the declaration is external.
* gcc-interface/utils.c (gnat_pushdecl): Do not put the declaration in
the current block if it is external.
(create_var_decl_1): Do not test Is_Public to set TREE_STATIC.
(gnat_zaplevel): New global function.
From-SVN: r164416
Diffstat (limited to 'gcc/ada/gcc-interface/gigi.h')
-rw-r--r-- | gcc/ada/gcc-interface/gigi.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/ada/gcc-interface/gigi.h b/gcc/ada/gcc-interface/gigi.h index 767700f..b464cac 100644 --- a/gcc/ada/gcc-interface/gigi.h +++ b/gcc/ada/gcc-interface/gigi.h @@ -259,6 +259,9 @@ 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); +/* Return the decl for the current elaboration procedure. */ +extern tree get_elaboration_procedure (void); + /* If nonzero, pretend we are allocating at global level. */ extern int force_global; @@ -403,6 +406,7 @@ extern int global_bindings_p (void); /* Enter and exit a new binding level. */ extern void gnat_pushlevel (void); extern void gnat_poplevel (void); +extern void gnat_zaplevel (void); /* Set SUPERCONTEXT of the BLOCK for the current binding level to FNDECL and point FNDECL to this BLOCK. */ |