aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/cp/init.c')
-rw-r--r--gcc/cp/init.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/cp/init.c b/gcc/cp/init.c
index 5c20e32a79f..7e9ad54706f 100644
--- a/gcc/cp/init.c
+++ b/gcc/cp/init.c
@@ -598,7 +598,9 @@ perform_member_init (tree member, tree init)
init = digest_init (type, init, tf_warning_or_error);
if (init == error_mark_node)
return;
- /* Use 'this' as the decl, as it has the lifetime we want. */
+ /* A FIELD_DECL doesn't really have a suitable lifetime, but
+ make_temporary_var_for_ref_to_temp will treat it as automatic and
+ set_up_extended_ref_temp wants to use the decl in a warning. */
init = extend_ref_init_temps (member, init, &cleanups);
if (TREE_CODE (type) == ARRAY_TYPE
&& TYPE_HAS_NONTRIVIAL_DESTRUCTOR (TREE_TYPE (type)))