From aa0e52dbd5a20acf70b8f5f2ffa407cdfcb9f737 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Wed, 17 May 2006 10:42:47 +0200 Subject: re PR c++/27491 (ICE on variable initialization) PR c++/27491 * semantics.c (finish_compound_literal): Only set TREE_HAS_CONSTRUCTOR on CONSTRUCTORs. * g++.dg/init/brace5.C: New test. From-SVN: r113847 --- gcc/cp/ChangeLog | 4 ++++ gcc/cp/semantics.c | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'gcc/cp') diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 8a31857..b54dfb8 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,9 @@ 2006-05-17 Jakub Jelinek + PR c++/27491 + * semantics.c (finish_compound_literal): Only set TREE_HAS_CONSTRUCTOR + on CONSTRUCTORs. + PR middle-end/27415 * parser.c (cp_parser_omp_parallel): Set OMP_PARALLEL_COMBINED on combined parallel workshare constructs. diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 1e315e2..f7a3b40 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -2033,7 +2033,8 @@ finish_compound_literal (tree type, VEC(constructor_elt,gc) *initializer_list) } /* Mark it as a compound-literal. */ - TREE_HAS_CONSTRUCTOR (compound_literal) = 1; + if (TREE_CODE (compound_literal) == CONSTRUCTOR) + TREE_HAS_CONSTRUCTOR (compound_literal) = 1; return compound_literal; } -- cgit v1.1