diff options
author | Jason Merrill <jason@gcc.gnu.org> | 2000-03-09 14:01:47 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2000-03-09 14:01:47 -0500 |
commit | fb13d4d024b03ae9c2e43171ebd43babd6ebb4e2 (patch) | |
tree | 0c173c0ea7357ad6956b8a86933712368ca50d23 /gcc/dwarf2out.c | |
parent | 8051b17802cf05b70177ae9a370940ba677f1add (diff) | |
download | gcc-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.c | 9 |
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); } |