From 2a66ec2b80cb3c613d567f734d523d2671fe74cd Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Wed, 4 Feb 1998 01:29:33 +0000 Subject: expr.c (cplus_expand_expr, [...]): Call convert_from_reference sooner. * expr.c (cplus_expand_expr, PCC_STATIC_STRUCT_RETURN code): Call convert_from_reference sooner. From-SVN: r17659 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/expr.c | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'gcc') diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index d7086dc..fd58776 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +Wed Feb 4 01:26:49 1998 Jason Merrill + + * expr.c (cplus_expand_expr, PCC_STATIC_STRUCT_RETURN code): + Call convert_from_reference sooner. + Tue Feb 3 23:50:52 1998 Mark Mitchell * cvt.c (ocp_convert): Obtain the constant values from constant diff --git a/gcc/cp/expr.c b/gcc/cp/expr.c index a275c8e..47d50e9 100644 --- a/gcc/cp/expr.c +++ b/gcc/cp/expr.c @@ -140,6 +140,7 @@ cplus_expand_expr (exp, target, tmode, modifier) tree init = build_decl (VAR_DECL, NULL_TREE, build_reference_type (type)); DECL_RTL (init) = XEXP (return_target, 0); + init = convert_from_reference (init); flag_access_control = 0; expand_aggr_init (slot, init, 0, LOOKUP_ONLYCONVERTING); @@ -147,7 +148,7 @@ cplus_expand_expr (exp, target, tmode, modifier) if (TYPE_NEEDS_DESTRUCTOR (type)) { - init = maybe_build_cleanup (convert_from_reference (init)); + init = maybe_build_cleanup (init); if (init != NULL_TREE) expand_expr (init, const0_rtx, VOIDmode, 0); } -- cgit v1.1