aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/gigi.h
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2010-11-03 00:15:51 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2010-11-03 00:15:51 +0000
commit586fea26ac1f35bcbf4b501f7881635105241a8c (patch)
tree93e79a0d561245e820722a4a6887170c7a25ca92 /gcc/ada/gcc-interface/gigi.h
parent04ae82aa4e3d2bdbcb2fc604604db6bf9884ba82 (diff)
downloadgcc-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.h11
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. */