diff options
author | Mark Mitchell <mark@codesourcery.com> | 2003-04-22 05:44:12 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2003-04-22 05:44:12 +0000 |
commit | b2dd096b0c7e5c48380b99b3d2b1ff4763b7f525 (patch) | |
tree | 0b42d76e5fdf7dbe6a765ae20af65b5a2ed24e6d /gcc/cp/cp-tree.h | |
parent | f71c12554b607c5980b932a4dff5cba4c7decb89 (diff) | |
download | gcc-b2dd096b0c7e5c48380b99b3d2b1ff4763b7f525.zip gcc-b2dd096b0c7e5c48380b99b3d2b1ff4763b7f525.tar.gz gcc-b2dd096b0c7e5c48380b99b3d2b1ff4763b7f525.tar.bz2 |
Makefile.in (calls.o): Depend on except.h.
* Makefile.in (calls.o): Depend on except.h.
* calls.c: Include except.h.
(emit_call_1): Call note_eh_region_may_contain_throw if
appropriate.
* except.c (eh_region): Add may_contain_throw.
(expand_eh_region_end_cleanup): Do not include handler code when
it cannot be reached.
(note_eh_region_may_contain_throw): New function.
* except.h (note_eh_region_may_contain_throw): New function.
* call.c (build_over_call): Use build_cxx_call.
(build_cxx_call): New method, split out of build_over_call.
* cp-tree.h (language_function): Add can_throw.
(build_cxx_call): Declare it.
* decl.c (finish_function): If a function does not contain any
calls to functions that can throw an exception, indicate that
fact.
* decl2.c (mark_used): Do not defer the instantiation of
functions, if the current function does not throw.
* optimize.c (maybe_clone_body): Copy TREE_NOTHROW to the clones.
* pt.c (instantiate_decl): Make sure import_export_decl is called
before emitting things.
* rtti.c (throw_bad_cast): Use build_cxx_call.
(build_dynamic_cast_1): Likewise.
* typeck.c (build_function_call): Likewise.
* g++.dg/template/recurse.C: Adjust location of error messages.
From-SVN: r65929
Diffstat (limited to 'gcc/cp/cp-tree.h')
-rw-r--r-- | gcc/cp/cp-tree.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 0e9a201..cbee534 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -794,6 +794,9 @@ struct language_function GTY(()) int in_base_initializer; int x_expanding_p; + /* True if this function can throw an exception. */ + bool can_throw : 1; + struct named_label_use_list *x_named_label_uses; struct named_label_list *x_named_labels; struct cp_binding_level *bindings; @@ -3522,6 +3525,7 @@ extern tree make_temporary_var_for_ref_to_temp (tree, tree); extern tree strip_top_quals (tree); extern tree perform_implicit_conversion (tree, tree); extern tree in_charge_arg_for_name (tree); +extern tree build_cxx_call (tree, tree, tree); /* in class.c */ extern tree build_base_path (enum tree_code, tree, tree, int); |