aboutsummaryrefslogtreecommitdiff
path: root/gnu/usr.bin/cc/cc1plus/expr.c
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/usr.bin/cc/cc1plus/expr.c')
-rw-r--r--gnu/usr.bin/cc/cc1plus/expr.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gnu/usr.bin/cc/cc1plus/expr.c b/gnu/usr.bin/cc/cc1plus/expr.c
index c2213d5f661d8..3b4f65d1b81d7 100644
--- a/gnu/usr.bin/cc/cc1plus/expr.c
+++ b/gnu/usr.bin/cc/cc1plus/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,