* decl.c (grokdeclarator): Return early after
issuing diagnostic about an incomplete type.
* g++.dg/parse/ctor7.C: New test.
* g++.dg/parse/ctor8.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116302
138bc75d-0d04-0410-961f-
82ee72b054a4
PR c++/26269
* decl.c (duplicate_decls): Return early if either
newdecl or olddecl is error_mark_node.
+
+ PR c++/28505
+ * decl.c (grokdeclarator): Return early after
+ issuing diagnostic about an incomplete type.
2006-08-20 Mark Mitchell <mark@codesourcery.com>
error (" in instantiation of template %qT",
current_class_type);
- type = error_mark_node;
- decl = NULL_TREE;
+ return error_mark_node;
}
else
{
PR c++/26269
* g++.dg/other/error14.C: New test.
+
+ PR c++/28505
+ * g++.dg/parse/ctor7.C: New test.
+ * g++.dg/parse/ctor8.C: Likewise.
2006-08-21 Olivier Hainque <hainque@adacore.com>
--- /dev/null
+//PR c++/28505
+
+struct A
+{
+ A : (); // { dg-error "primary-expression|incomplete type" }
+ A : (int); // { dg-error "primary-expression|incomplete type|'int'" }
+};
+
+struct B
+{
+ char c;
+ A a;
+};
+
+B b = (B){0}; // { dg-error "compound-literals" }
--- /dev/null
+//PR c++/28505
+
+struct A
+{
+ A : (); // { dg-error "primary-expression|incomplete type" }
+ A : (int); // { dg-error "primary-expression|incomplete type|'int'" }
+};
+
+A a = (A){0}; // { dg-error "too many initializers|compound-literals" }