summaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface
diff options
context:
space:
mode:
authorebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2012-05-06 11:28:20 +0000
committerebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4>2012-05-06 11:28:20 +0000
commitd349f8a8d02b64de1f79bdbf1f6ece2e4fa58f71 (patch)
treeba8cf08f95717bb5fb66cf7bb1290c15f6eb5e96 /gcc/ada/gcc-interface
parent647b284327a48bc9ff049348e9dd2584b7169cb4 (diff)
downloadgcc-d349f8a8d02b64de1f79bdbf1f6ece2e4fa58f71.tar.gz
* gcc-interface/trans.c (gigi): Decorate reraise_zcx_decl.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@187210 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/gcc-interface')
-rw-r--r--gcc/ada/gcc-interface/trans.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c
index c4b9a7e2e31..dd1669b7977 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