diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index aa7004b15e2..6818ca33198 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,11 @@ +2013-10-14 Tristan Gingold + + * 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 * exp_attr.adb (Find_Stream_Subprogram): Optimize diff --git a/gcc/ada/gcc-interface/gigi.h b/gcc/ada/gcc-interface/gigi.h index d18fd4d2207..ca297373d73 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 f97112ce399..ff1f22d3c9e 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,