diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index f71c239e58f3..ba55d805f9ea 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 e616196f7dcb..bbdf81ad961e 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);