From: Tristan Gingold Date: Sun, 6 May 2012 11:28:20 +0000 (+0000) Subject: * gcc-interface/trans.c (gigi): Decorate reraise_zcx_decl. X-Git-Tag: misc/gccgo-go1_1_2~3068 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=630dfc9c518aadc930be98f64a4cdc9a10bd45ca;p=thirdparty%2Fgcc.git * gcc-interface/trans.c (gigi): Decorate reraise_zcx_decl. From-SVN: r187210 --- diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 856d100e8b0b..fa564b14f45a 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,7 @@ +2012-05-06 Tristan Gingold + + * gcc-interface/trans.c (gigi): Decorate reraise_zcx_decl. + 2012-05-06 Eric Botcazou * gcc-interface/decl.c (gnat_to_gnu_entity) : In the renaming diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c index c4b9a7e2e319..dd1669b7977e 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 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 20133aa4cbd4..d777ff447b31 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2012-05-06 Tristan Gingold + + * gnat.dg/warn7.adb: New test. + 2012-05-06 Eric Botcazou * gnat.dg/specs/renamings.ads: Rename to... diff --git a/gcc/testsuite/gnat.dg/warn7.adb b/gcc/testsuite/gnat.dg/warn7.adb new file mode 100644 index 000000000000..93c14f4f3470 --- /dev/null +++ b/gcc/testsuite/gnat.dg/warn7.adb @@ -0,0 +1,18 @@ +-- { dg-do compile } + +procedure Warn7 is + + procedure Nested; + pragma No_Return (Nested); + + procedure Nested is + begin + raise Constraint_Error; + exception + when Constraint_Error => + raise; + end; + +begin + Nested; +end;