decl2.c (grokfield): Issue error on illegal data member declaration.

* decl2.c (grokfield): Issue error on illegal data member
	declaration.

From-SVN: r33220
This commit is contained in:
Mark Mitchell 2000-04-18 01:30:21 +00:00 committed by Mark Mitchell
parent ab36bd3ed4
commit 009e98457a
3 changed files with 28 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2000-04-17 Mark Mitchell <mark@codesourcery.com>
* decl2.c (grokfield): Issue error on illegal data member
declaration.
Mon Apr 17 17:11:16 2000 Mark P Mitchell <mark@codesourcery.com>
* method.c (make_thunk): Set DECL_CONTEXT for a THUNK_DECL.

View File

@ -1572,7 +1572,23 @@ grokfield (declarator, declspecs, init, asmspec_tree, attrlist)
|| TREE_CODE (TREE_OPERAND (declarator, 0)) == SCOPE_REF)
&& parmlist_is_exprlist (CALL_DECLARATOR_PARMS (declarator)))
{
init = TREE_OPERAND (declarator, 1);
/* It's invalid to try to initialize a data member using a
functional notation, e.g.:
struct S {
static int i (3);
};
Explain that to the user. */
static int explained_p;
cp_error ("invalid data member initiailization");
if (!explained_p)
{
cp_error ("use `=' to initialize static data members");
explained_p = 1;
}
declarator = TREE_OPERAND (declarator, 0);
flags = 0;
}

View File

@ -0,0 +1,6 @@
// Build don't link:
// Origin: Dima Volodin <dvv@dvv.org>
class C {
static int const N (1000);
};