2006-06-25 Lee Millward <lee.millward@gmail.com>
+ Mark Mitchell <mark@codesuorcery.com>
+
+ PR c++/28054
+ * decl2.c (grokbitfied): Remove check for grokdeclarator
+ returning NULL_TREE, instead check for error_mark_node
+ to indicate failure.
+ * decl.c (grokdeclarator): Adjust block comment.
+
+2006-06-25 Lee Millward <lee.millward@gmail.com>
PR c++/28051
* mangle.c (mangle_conv_op_name_for_type): Check for
void S::f() { ... }
when grokdeclarator is called for `S::f', the CURRENT_CLASS_TYPE
- should not be `S'. */
+ should not be `S'.
+
+ Returns a DECL (if a declarator is present), a TYPE (if there is no
+ declarator, in cases like "struct S;"), or the ERROR_MARK_NODE if an
+ error occurs. */
tree
grokdeclarator (const cp_declarator *declarator,
{
tree value = grokdeclarator (declarator, declspecs, BITFIELD, 0, NULL);
- if (! value) return NULL_TREE; /* friends went bad. */
+ if (value == error_mark_node)
+ return NULL_TREE; /* friends went bad. */
/* Pass friendly classes back. */
if (TREE_CODE (value) == VOID_TYPE)
PR c++/28051
* g++.dg/template/using13.C: New test.
+
+ PR c++/28054
+ * g++.dg/other/incomplete3.C: New test.
2006-06-24 Francois-Xavier Coudert <coudert@clipper.ens.fr>
--- /dev/null
+//PR c++/28054
+
+struct A;
+
+struct B
+{
+ friend A : 2; // { dg-error "incomplete type" }
+};
+