aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/class.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/other/incomplete2.C14
4 files changed, 26 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 0d24702..fe48ced 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2006-04-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/19963
+ * class.c (layout_class_type): Skip fields with invalid types.
+
2006-04-23 Mark Mitchell <mark@codesourcery.com>
PR c++/26912
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index 1cf87dc..a7536bb 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -4607,6 +4607,8 @@ layout_class_type (tree t, tree *virtuals_p)
}
type = TREE_TYPE (field);
+ if (type == error_mark_node)
+ continue;
padding = NULL_TREE;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 3c6b413..f477f4b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2006-04-24 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR c++/19963
+ * g++.dg/other/incomplete2.C: New test.
+
2006-04-24 Richard Guenther <rguenther@suse.de>
PR middle-end/26869
diff --git a/gcc/testsuite/g++.dg/other/incomplete2.C b/gcc/testsuite/g++.dg/other/incomplete2.C
new file mode 100644
index 0000000..127bf58
--- /dev/null
+++ b/gcc/testsuite/g++.dg/other/incomplete2.C
@@ -0,0 +1,14 @@
+// PR c++/19963
+// { dg-do compile }
+
+struct A;
+
+struct B
+{
+ A a : 1; // { dg-error "incomplete" }
+};
+
+struct S
+{
+ S : 1; // { dg-error "incomplete" }
+};