diff options
author | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-05-06 11:28:20 +0000 |
---|---|---|
committer | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2012-05-06 11:28:20 +0000 |
commit | d349f8a8d02b64de1f79bdbf1f6ece2e4fa58f71 (patch) | |
tree | ba8cf08f95717bb5fb66cf7bb1290c15f6eb5e96 /gcc/ada/gcc-interface | |
parent | 647b284327a48bc9ff049348e9dd2584b7169cb4 (diff) | |
download | gcc-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.c | 6 |
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 |