aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2006-05-17 10:42:47 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2006-05-17 10:42:47 +0200
commitaa0e52dbd5a20acf70b8f5f2ffa407cdfcb9f737 (patch)
tree4e1059003fcc11ced87eaea21db27730e1747465 /gcc
parent761041be912de3a0344a507dbb718a49a9c19434 (diff)
downloadgcc-aa0e52dbd5a20acf70b8f5f2ffa407cdfcb9f737.zip
gcc-aa0e52dbd5a20acf70b8f5f2ffa407cdfcb9f737.tar.gz
gcc-aa0e52dbd5a20acf70b8f5f2ffa407cdfcb9f737.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/semantics.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/init/brace5.C7
4 files changed, 16 insertions, 3 deletions
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 <jakub@redhat.com>
+ 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;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index b5339b2..e610ce5 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,11 +1,12 @@
2006-05-17 Jakub Jelinek <jakub@redhat.com>
+ PR c++/27491
+ * g++.dg/init/brace5.C: New test.
+
PR middle-end/27415
* gcc.dg/gomp/pr27415.c: New test.
* g++.dg/gomp/pr27415.C: New test.
-2006-05-17 Jakub Jelinek <jakub@redhat.com>
-
PR tree-optimization/27549
* g++.dg/tree-ssa/pr27549.C: New test.
diff --git a/gcc/testsuite/g++.dg/init/brace5.C b/gcc/testsuite/g++.dg/init/brace5.C
new file mode 100644
index 0000000..696bbd6
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/brace5.C
@@ -0,0 +1,7 @@
+// PR c++/27491
+// { dg-do compile }
+// { dg-options "" }
+
+int i = (int) { 0 };
+int j = (int) { i };
+int k = (int) { k };