diff options
author | merrill <merrill@138bc75d-0d04-0410-961f-82ee72b054a4> | 1994-10-27 01:22:58 +0000 |
---|---|---|
committer | merrill <merrill@138bc75d-0d04-0410-961f-82ee72b054a4> | 1994-10-27 01:22:58 +0000 |
commit | 0d77f64c7888be6ec16bcc75e4b3685f4034a074 (patch) | |
tree | 4e5b97d302910a34e3d6be43511996ecb3e9d0f7 /gcc/cp/expr.c | |
parent | d625a8d9eae96f9c45e7541ca8929df1b5cade06 (diff) | |
download | gcc-0d77f64c7888be6ec16bcc75e4b3685f4034a074.tar.gz |
*** empty log message ***
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8347 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/expr.c')
-rw-r--r-- | gcc/cp/expr.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/cp/expr.c b/gcc/cp/expr.c index c2213d5f661..3b4f65d1b81 100644 --- a/gcc/cp/expr.c +++ b/gcc/cp/expr.c @@ -148,9 +148,16 @@ cplus_expand_expr (exp, target, tmode, modifier) { if (pcc_struct_return) { + extern int flag_access_control; + int old_ac = flag_access_control; + tree init = build (RTL_EXPR, type, 0, return_target); TREE_ADDRESSABLE (init) = 1; + + flag_access_control = 0; expand_aggr_init (slot, init, 0); + flag_access_control = old_ac; + if (TYPE_NEEDS_DESTRUCTOR (type)) { init = build (RTL_EXPR, build_reference_type (type), 0, |