aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada
diff options
context:
space:
mode:
authorTristan Gingold <gingold@adacore.com>2012-05-06 11:28:20 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2012-05-06 11:28:20 +0000
commit630dfc9c518aadc930be98f64a4cdc9a10bd45ca (patch)
treeba8cf08f95717bb5fb66cf7bb1290c15f6eb5e96 /gcc/ada
parent9422c886e9405ea2fe5a5f1a0152b301e8ae1204 (diff)
downloadgcc-630dfc9c518aadc930be98f64a4cdc9a10bd45ca.zip
gcc-630dfc9c518aadc930be98f64a4cdc9a10bd45ca.tar.gz
gcc-630dfc9c518aadc930be98f64a4cdc9a10bd45ca.tar.bz2
* gcc-interface/trans.c (gigi): Decorate reraise_zcx_decl.
From-SVN: r187210
Diffstat (limited to 'gcc/ada')
-rw-r--r--gcc/ada/ChangeLog4
-rw-r--r--gcc/ada/gcc-interface/trans.c6
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 856d100..fa564b1 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,7 @@
+2012-05-06 Tristan Gingold <gingold@adacore.com>
+
+ * gcc-interface/trans.c (gigi): Decorate reraise_zcx_decl.
+
2012-05-06 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/decl.c (gnat_to_gnu_entity) <object>: In the renaming
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c
index c4b9a7e..dd1669b 100644
--- a/gcc/ada/gcc-interface/trans.c
+++ b/gcc/ada/gcc-interface/trans.c
@@ -502,7 +502,12 @@ gigi (Node_Id gnat_root, int max_gnat_node, int number_name ATTRIBUTE_UNUSED,
= create_subprog_decl (get_identifier ("__gnat_reraise_zcx"), NULL_TREE,
ftype, NULL_TREE, false, true, true, true, NULL,
Empty);
+ /* Indicate that these never return. */
DECL_IGNORED_P (reraise_zcx_decl) = 1;
+ TREE_THIS_VOLATILE (reraise_zcx_decl) = 1;
+ TREE_SIDE_EFFECTS (reraise_zcx_decl) = 1;
+ TREE_TYPE (reraise_zcx_decl)
+ = build_qualified_type (TREE_TYPE (reraise_zcx_decl), TYPE_QUAL_VOLATILE);
/* If in no exception handlers mode, all raise statements are redirected to
__gnat_last_chance_handler. No need to redefine raise_nodefer_decl since
@@ -550,6 +555,7 @@ gigi (Node_Id gnat_root, int max_gnat_node, int number_name ATTRIBUTE_UNUSED,
build_function_type_list (build_pointer_type (except_type_node),
NULL_TREE),
NULL_TREE, false, true, true, true, NULL, Empty);
+ DECL_IGNORED_P (get_excptr_decl) = 1;
raise_nodefer_decl
= create_subprog_decl