From afbb631e67b011f5d68dabf3f42bfca846f27fc1 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Wed, 30 Oct 2013 15:51:23 -0400 Subject: [PATCH] semantics.c (finish_compound_literal): Don't create a static variable inside cp_unevaluated_operand. * semantics.c (finish_compound_literal): Don't create a static variable inside cp_unevaluated_operand. From-SVN: r204228 --- gcc/cp/ChangeLog | 3 +++ gcc/cp/semantics.c | 1 + 2 files changed, 4 insertions(+) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index f71c239e58f..ba55d805f9e 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2013-10-30 Jason Merrill + * semantics.c (finish_compound_literal): Don't create a static variable + inside cp_unevaluated_operand. + * init.c (push_base_cleanups): Check ANON_AGGR_TYPE_P. 2013-10-30 Tobias Burnus diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index e616196f7dc..bbdf81ad961 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -2516,6 +2516,7 @@ finish_compound_literal (tree type, tree compound_literal, if ((!at_function_scope_p () || CP_TYPE_CONST_P (type)) && TREE_CODE (type) == ARRAY_TYPE && !TYPE_HAS_NONTRIVIAL_DESTRUCTOR (type) + && !cp_unevaluated_operand && initializer_constant_valid_p (compound_literal, type)) { tree decl = create_temporary_var (type); -- 2.30.2