From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12685 invoked by alias); 14 Dec 2002 17:16:03 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 12663 invoked by uid 71); 14 Dec 2002 17:16:02 -0000 Date: Sat, 14 Dec 2002 09:16:00 -0000 Message-ID: <20021214171602.12661.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: jason@gcc.gnu.org Subject: c++/8461 Reply-To: jason@gcc.gnu.org X-SW-Source: 2002-12/txt/msg00796.txt.bz2 List-Id: The following reply was made to PR c++/8461; it has been noted by GNATS. From: jason@gcc.gnu.org To: gcc-gnats@gcc.gnu.org Cc: Subject: c++/8461 Date: 14 Dec 2002 17:11:31 -0000 CVSROOT: /cvs/gcc Module name: gcc Branch: tree-ssa-20020619-branch Changes by: jason@gcc.gnu.org 2002-12-14 09:11:31 Modified files: gcc : ChangeLog calls.c explow.c expr.c integrate.c langhooks-def.h langhooks.c langhooks.h old-tree-inline.c tree-inline.c tree.h gcc/cp : ChangeLog call.c cp-lang.c cp-simplify.c cp-tree.h except.c tree.c Log message: * tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): New macro. * calls.c (expand_call): Handle it. * tree-inline.c (struct inline_data): Remove target_exprs field. (optimize_inline_calls): Don't initialize it. (expand_call_inline): Don't modify it. Handle CALL_EXPR_HAS_RETURN_SLOT_ADDR. (declare_return_variable): Take return slot addr. * langhooks.h (copy_res_decl_for_inlining): Change target_exprs parm to return_slot_addr. * langhooks-def.h, langhooks.c: Adjust. * explow.c (maybe_set_unchanging): Don't set RTX_UNCHANGING_P for a decl with no DECL_INITIAL. * expr.c (expand_expr): Don't discard the target of a call which returns in memory. PR c++/8461, c++/8625 * integrate.c (copy_decl_for_inlining): Handle explicit invisible references. * tree-inline.c (initialize_inlined_parameters): Likewise. cp/ * semantics.c (simplify_aggr_init_exprs_r): Also prepend the return slot for normal functions. Set CALL_EXPR_HAS_RETURN_SLOT_ADDR. * tree.c (build_cplus_new): If the type isn't TREE_ADDRESSABLE, don't bother with an AGGR_INIT_EXPR. (cp_copy_res_decl_for_inlining): If the type isn't TREE_ADDRESSABLE, just generate a new decl normally. Take return slot parm. * cp-tree.h: Adjust prototype. PR c++/8461, c++/8625 * call.c (convert_for_arg_passing): Don't mess with error_mark_node. (cp_convert_parm_for_inlining): Remove. * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): Remove. * cp-tree.h (ADDR_IS_INVISIREF): Remove. * except.c (stabilize_throw_expr): Remove ADDR_IS_INVISIREF code. Patches: http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.14646.2.40&r2=1.14646.2.41 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/calls.c.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.229.2.11&r2=1.229.2.12 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/explow.c.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.94.2.10&r2=1.94.2.11 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/expr.c.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.467.2.17&r2=1.467.2.18 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/integrate.c.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.197.2.8&r2=1.197.2.9 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/langhooks-def.h.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.34.2.8&r2=1.34.2.9 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/langhooks.c.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.31.2.7&r2=1.31.2.8 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/langhooks.h.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.42.2.9&r2=1.42.2.10 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/old-tree-inline.c.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.1.4.5&r2=1.1.4.6 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-inline.c.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.26.2.13&r2=1.26.2.14 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree.h.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.342.2.31&r2=1.342.2.32 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.2849.2.22&r2=1.2849.2.23 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/call.c.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.320.2.13&r2=1.320.2.14 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/cp-lang.c.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.36.2.10&r2=1.36.2.11 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/cp-simplify.c.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.1.4.6&r2=1.1.4.7 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/cp-tree.h.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.719.2.19&r2=1.719.2.20 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/except.c.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.142.2.5&r2=1.142.2.6 http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/tree.c.diff?cvsroot=gcc&only_with_tag=tree-ssa-20020619-branch&r1=1.286.2.17&r2=1.286.2.18