aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorVolker Reichelt <reichelt@igpm.rwth-aachen.de>2006-04-21 23:02:26 +0000
committerVolker Reichelt <reichelt@gcc.gnu.org>2006-04-21 23:02:26 +0000
commitf01da1a506d37f69913d0a998bd23aa16f63d8a1 (patch)
tree89f48631e3ba1bb264820d5e730db453e0fb2553 /gcc
parent5d5e98dc75c0e81e938501bb06622023c7eb9e3b (diff)
downloadgcc-f01da1a506d37f69913d0a998bd23aa16f63d8a1.zip
gcc-f01da1a506d37f69913d0a998bd23aa16f63d8a1.tar.gz
gcc-f01da1a506d37f69913d0a998bd23aa16f63d8a1.tar.bz2
re PR c/25875 (ICE: segmentation fault)
PR c/25875 * c-typeck.c (digest_init): Robustify. * gcc.dg/init-bad-4.c: New test. From-SVN: r113153
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/c-typeck.c1
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/init-bad-4.c5
4 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b2840b6..b506224 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
2006-04-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+ PR c/25875
+ * c-typeck.c (digest_init): Robustify.
+
* c-typeck.c (pop_init_level): Simplify.
2006-04-21 Steve Ellcey <sje@cup.hp.com>
diff --git a/gcc/c-typeck.c b/gcc/c-typeck.c
index 73c120d..21fe125 100644
--- a/gcc/c-typeck.c
+++ b/gcc/c-typeck.c
@@ -4495,6 +4495,7 @@ digest_init (tree type, tree init, bool strict_string, int require_constant)
tree inside_init = init;
if (type == error_mark_node
+ || !init
|| init == error_mark_node
|| TREE_TYPE (init) == error_mark_node)
return error_mark_node;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 544ec0d..6cdaade 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2006-04-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c/25875
+ * gcc.dg/init-bad-4.c: New test.
+
2006-04-21 Paul Brook <paul@codesourcery.com>
* gcc.dg/arm-vfp1.c: Skip on iWMMXt cpus.
diff --git a/gcc/testsuite/gcc.dg/init-bad-4.c b/gcc/testsuite/gcc.dg/init-bad-4.c
new file mode 100644
index 0000000..3f03002
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/init-bad-4.c
@@ -0,0 +1,5 @@
+/* PR c/25875 */
+/* Origin: Richard Guenther <rguenth@gcc.gnu.org> */
+/* { dg-do compile } */
+
+struct A { } a = (struct A) {{ (X)0 }}; /* { dg-error "no members|extra brace|near|undeclared|constant|compound" } */