C++ PATCH: Backport stabilize_call and 13944 fix to 3.4
Jason Merrill
jason@redhat.com
Tue Mar 2 19:56:00 GMT 2004
This patch is a backport of three patches previously applied to the
tree-ssa branch:
http://gcc.gnu.org/ml/gcc-patches/2003-11/msg01390.html
http://gcc.gnu.org/ml/gcc-patches/2004-02/msg02240.html
http://gcc.gnu.org/ml/gcc-patches/2004-02/msg02241.html
I applied the first one only to tree-ssa because I thought that it was not
a bugfix. However, Jan found a case which fails on 3.4 because of
CALL_EXPR sharing, which is fixed by my patch.
http://gcc.gnu.org/ml/gcc-patches/2004-01/msg00118.html
The fix for 13944 doesn't depend on stabilize_call, but the change is
affected by it, so I'm appling it at the same time.
Tested x86_64-pc-linux-gnu, applied to 3.4 branch.
2004-03-01 Jason Merrill <jason@redhat.com>
PR c++/13944
* except.c (do_free_exception): Remove #if 0 wrapper.
(build_throw): Use it if we elide a copy into the
exception object.
* tree.c (stabilize_call): Fix thinko.
* init.c (build_new_1): Preevaluate initializer. Simplify EH code.
(build_init): Call a constructor rather than call build_aggr_init
for classes.
* except.c (stabilize_throw_expr): Remove.
(build_throw): Use stabilize_init instead of stabilize_throw_expr.
* tree.c (stabilize_call, stabilize_init): New fns.
* call.c (build_over_call): A constructor no longer returns the
address of the object.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: text/x-patch
Size: 22074 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20040302/7cd006d7/attachment.bin>
More information about the Gcc-patches
mailing list