diff options
author | Douglas Gregor <dgregor@apple.com> | 2011-10-09 18:55:59 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2011-10-09 18:55:59 +0000 |
commit | b5a0187b12524d2c1e6ac96e81715d1e70bbe0ad (patch) | |
tree | 8da5745be3540eebe457403fca487d040edd61be /lib/Sema/SemaDeclCXX.cpp | |
parent | 43fe245b37c3cd36d837aab9eb98551328d30141 (diff) |
Diagnose attempts to declare a non-static data member with a
non-identifier name. Fixes PR10839.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141513 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaDeclCXX.cpp')
-rw-r--r-- | lib/Sema/SemaDeclCXX.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp index cd57dcfb9a..031afa078d 100644 --- a/lib/Sema/SemaDeclCXX.cpp +++ b/lib/Sema/SemaDeclCXX.cpp @@ -1487,8 +1487,14 @@ Sema::ActOnCXXMemberDeclarator(Scope *S, AccessSpecifier AS, Declarator &D, Decl *Member; if (isInstField) { CXXScopeSpec &SS = D.getCXXScopeSpec(); + + // Data members must have identifiers for names. + if (Name.getNameKind() != DeclarationName::Identifier) { + Diag(Loc, diag::err_bad_variable_name) + << Name; + return 0; + } - // FIXME: Check that the name is an identifier! IdentifierInfo *II = Name.getAsIdentifierInfo(); // Member field could not be with "template" keyword. |