diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2010-11-03 00:15:51 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2010-11-03 00:15:51 +0000 |
commit | 586fea26ac1f35bcbf4b501f7881635105241a8c (patch) | |
tree | 93e79a0d561245e820722a4a6887170c7a25ca92 /gcc/ada/gcc-interface/gigi.h | |
parent | 04ae82aa4e3d2bdbcb2fc604604db6bf9884ba82 (diff) | |
download | gcc-586fea26ac1f35bcbf4b501f7881635105241a8c.zip gcc-586fea26ac1f35bcbf4b501f7881635105241a8c.tar.gz gcc-586fea26ac1f35bcbf4b501f7881635105241a8c.tar.bz2 |
gigi.h (add_stmt_force): Declare.
* gcc-interface/gigi.h (add_stmt_force): Declare.
(add_stmt_with_node_force): Likewise.
* gcc-interface/trans.c (Attribute_to_gnu): Don't set TREE_SIDE_EFFECTS
on the SAVE_EXPR built for cached expressions of parameter attributes.
(Subprogram_Body_to_gnu): Force evaluation of the SAVE_EXPR built for
cached expressions of parameter attributes.
(add_stmt_force): New function.
(add_stmt_with_node_force): Likewise.
From-SVN: r166222
Diffstat (limited to 'gcc/ada/gcc-interface/gigi.h')
-rw-r--r-- | gcc/ada/gcc-interface/gigi.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ada/gcc-interface/gigi.h b/gcc/ada/gcc-interface/gigi.h index 36966f9..67a7a47 100644 --- a/gcc/ada/gcc-interface/gigi.h +++ b/gcc/ada/gcc-interface/gigi.h @@ -57,12 +57,19 @@ extern void rest_of_type_decl_compilation (tree t); /* Start a new statement group chained to the previous group. */ extern void start_stmt_group (void); -/* Add GNU_STMT to the current BLOCK_STMT node. */ +/* Add GNU_STMT to the current statement group. If it is an expression with + no effects, it is ignored. */ extern void add_stmt (tree gnu_stmt); -/* Similar, but set the location of GNU_STMT to that of GNAT_NODE. */ +/* Similar, but the statement is always added, regardless of side-effects. */ +extern void add_stmt_force (tree gnu_stmt); + +/* Like add_stmt, but set the location of GNU_STMT to that of GNAT_NODE. */ extern void add_stmt_with_node (tree gnu_stmt, Node_Id gnat_node); +/* Similar, but the statement is always added, regardless of side-effects. */ +extern void add_stmt_with_node_force (tree gnu_stmt, Node_Id gnat_node); + /* Return code corresponding to the current code group. It is normally a STATEMENT_LIST, but may also be a BIND_EXPR or TRY_FINALLY_EXPR if BLOCK or cleanups were set. */ |