aboutsummaryrefslogtreecommitdiff
path: root/gcc/dwarf2out.c
diff options
context:
space:
mode:
authorJason Merrill <jason@gcc.gnu.org>2000-03-09 14:01:47 -0500
committerJason Merrill <jason@gcc.gnu.org>2000-03-09 14:01:47 -0500
commitfb13d4d024b03ae9c2e43171ebd43babd6ebb4e2 (patch)
tree0c173c0ea7357ad6956b8a86933712368ca50d23 /gcc/dwarf2out.c
parent8051b17802cf05b70177ae9a370940ba677f1add (diff)
downloadgcc-fb13d4d024b03ae9c2e43171ebd43babd6ebb4e2.zip
gcc-fb13d4d024b03ae9c2e43171ebd43babd6ebb4e2.tar.gz
gcc-fb13d4d024b03ae9c2e43171ebd43babd6ebb4e2.tar.bz2
except.c (can_throw): See through a SEQUENCE.
* except.c (can_throw): See through a SEQUENCE. (nothrow_function_p): New fn. * except.h: Declare it. * function.c (current_function_nothrow): New var. (prepare_function_start): Initialize it. * output.h: Declare it. * toplev.c (rest_of_compilation): Set it. * dwarf2out.c (dwarf2out_begin_prologue): Use it. From-SVN: r32449
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r--gcc/dwarf2out.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 20e8a1b..0f18779 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -1889,9 +1889,7 @@ dwarf2out_begin_prologue ()
fde->dw_fde_current_label = NULL;
fde->dw_fde_end = NULL;
fde->dw_fde_cfi = NULL;
-
- /* Normally, only calls can throw, so a leaf function will never throw. */
- fde->nothrow = (current_function_is_leaf && !asynchronous_exceptions);
+ fde->nothrow = current_function_nothrow;
args_size = old_args_size = 0;
}
@@ -7394,7 +7392,10 @@ add_abstract_origin_attribute (die, origin)
Doing this for nested functions is wrong, however; functions are
distinct units, and our context might not even be inline. */
- tree fn = decl_function_context (origin);
+ tree fn = origin;
+ if (TYPE_P (fn))
+ fn = TYPE_STUB_DECL (fn);
+ fn = decl_function_context (fn);
if (fn)
gen_abstract_function (fn);
}