aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorTristan Gingold <gingold@adacore.com>2013-10-14 14:02:14 +0000
committerArnaud Charlet <charlet@gcc.gnu.org>2013-10-14 16:02:14 +0200
commit9f2a75d355fc63551d36241ae4ff58ec23cc8fed (patch)
tree28653fb54df7acbcd18012c8ba01aacdf71d9172 /gcc
parent161c5cc509e5e8abd70ec84848c43f51a9b1cbcb (diff)
downloadgcc-9f2a75d355fc63551d36241ae4ff58ec23cc8fed.zip
gcc-9f2a75d355fc63551d36241ae4ff58ec23cc8fed.tar.gz
gcc-9f2a75d355fc63551d36241ae4ff58ec23cc8fed.tar.bz2
gigi.h (standard_datatypes): Add ADT_set_exception_parameter_decl
2013-10-14 Tristan Gingold <gingold@adacore.com> * gcc-interface/gigi.h (standard_datatypes): Add ADT_set_exception_parameter_decl (set_exception_parameter_decl): New macro. * gcc-interface/trans.c (gigi): Initialize set_exception_parameter_decl. (Exception_Handler_to_gnu_zcx): Initialize the choice parameter. From-SVN: r203561
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog8
-rw-r--r--gcc/ada/gcc-interface/gigi.h3
-rw-r--r--gcc/ada/gcc-interface/trans.c9
3 files changed, 20 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index aa7004b..6818ca3 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,11 @@
+2013-10-14 Tristan Gingold <gingold@adacore.com>
+
+ * gcc-interface/gigi.h (standard_datatypes): Add
+ ADT_set_exception_parameter_decl
+ (set_exception_parameter_decl): New macro.
+ * gcc-interface/trans.c (gigi): Initialize set_exception_parameter_decl.
+ (Exception_Handler_to_gnu_zcx): Initialize the choice parameter.
+
2013-10-14 Robert Dewar <dewar@adacore.com>
* exp_attr.adb (Find_Stream_Subprogram): Optimize
diff --git a/gcc/ada/gcc-interface/gigi.h b/gcc/ada/gcc-interface/gigi.h
index d18fd4d..ca29737 100644
--- a/gcc/ada/gcc-interface/gigi.h
+++ b/gcc/ada/gcc-interface/gigi.h
@@ -411,6 +411,7 @@ enum standard_datatypes
ADT_update_setjmp_buf_decl,
ADT_raise_nodefer_decl,
ADT_reraise_zcx_decl,
+ ADT_set_exception_parameter_decl,
ADT_begin_handler_decl,
ADT_end_handler_decl,
ADT_unhandled_except_decl,
@@ -470,6 +471,8 @@ extern GTY(()) tree gnat_raise_decls_ext[(int) LAST_REASON_CODE + 1];
#define update_setjmp_buf_decl gnat_std_decls[(int) ADT_update_setjmp_buf_decl]
#define raise_nodefer_decl gnat_std_decls[(int) ADT_raise_nodefer_decl]
#define reraise_zcx_decl gnat_std_decls[(int) ADT_reraise_zcx_decl]
+#define set_exception_parameter_decl \
+ gnat_std_decls[(int) ADT_set_exception_parameter_decl]
#define begin_handler_decl gnat_std_decls[(int) ADT_begin_handler_decl]
#define others_decl gnat_std_decls[(int) ADT_others_decl]
#define all_others_decl gnat_std_decls[(int) ADT_all_others_decl]
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c
index f97112c..ff1f22d 100644
--- a/gcc/ada/gcc-interface/trans.c
+++ b/gcc/ada/gcc-interface/trans.c
@@ -565,6 +565,15 @@ gigi (Node_Id gnat_root, int max_gnat_node, int number_name ATTRIBUTE_UNUSED,
NULL_TREE, is_disabled, true, true, true, NULL, Empty);
DECL_IGNORED_P (get_excptr_decl) = 1;
+ set_exception_parameter_decl
+ = create_subprog_decl
+ (get_identifier ("__gnat_set_exception_parameter"), NULL_TREE,
+ build_function_type_list (void_type_node,
+ ptr_void_type_node,
+ ptr_void_type_node,
+ NULL_TREE),
+ NULL_TREE, is_disabled, true, true, true, NULL, Empty);
+
raise_nodefer_decl
= create_subprog_decl
(get_identifier ("__gnat_raise_nodefer_with_msg"), NULL_TREE,