OSDN Git Service

* Makefile.in (calls.o): Depend on except.h.
authormmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 22 Apr 2003 05:44:12 +0000 (05:44 +0000)
committermmitchel <mmitchel@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 22 Apr 2003 05:44:12 +0000 (05:44 +0000)
commit95cedffb7229d00b1fe6f7943139ff8c6d2bf0b4
tree0b42d76e5fdf7dbe6a765ae20af65b5a2ed24e6d
parent5a92abf25eedfc5fdb53215990f42c18b296abc4
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@65929 138bc75d-0d04-0410-961f-82ee72b054a4
16 files changed:
gcc/ChangeLog
gcc/Makefile.in
gcc/calls.c
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/decl2.c
gcc/cp/optimize.c
gcc/cp/pt.c
gcc/cp/rtti.c
gcc/cp/typeck.c
gcc/except.c
gcc/except.h
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/template/recurse.C