diff options
author | Anders Carlsson <andersca@mac.com> | 2009-03-26 01:19:02 +0000 |
---|---|---|
committer | Anders Carlsson <andersca@mac.com> | 2009-03-26 01:19:02 +0000 |
commit | 0cf8830a45115176ef5ba5416b7ad7aa9d5cb255 (patch) | |
tree | f183a6590a8d94d43d04682ea0dfb35422e99469 /lib/Sema/SemaDecl.cpp | |
parent | 5aeccdbb4bdc94e48c04cacc59fa812af32109b2 (diff) |
Factor the member access specifier setting code into its own function. No intended functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67725 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Sema/SemaDecl.cpp')
-rw-r--r-- | lib/Sema/SemaDecl.cpp | 29 |
1 files changed, 2 insertions, 27 deletions
diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp index d974301785..e9f586583c 100644 --- a/lib/Sema/SemaDecl.cpp +++ b/lib/Sema/SemaDecl.cpp @@ -3083,21 +3083,6 @@ TypedefDecl *Sema::ParseTypedefDecl(Scope *S, Declarator &D, QualType T, return NewTD; } -static const char *getAccessName(AccessSpecifier AS) { - switch (AS) { - default: - case AS_none: - assert("Invalid access specifier!"); - return 0; - case AS_public: - return "public"; - case AS_private: - return "private"; - case AS_protected: - return "protected"; - } -} - /// ActOnTag - This is invoked when we see 'struct foo' or 'struct {'. In the /// former case, Name will be non-null. In the later case, Name will be null. /// TagSpec indicates what kind of tag this is. TK indicates whether this is a @@ -3399,18 +3384,8 @@ CreateNewDecl: // lexical context will be different from the semantic context. New->setLexicalDeclContext(CurContext); - if (PrevDecl) { - // C++ [class.access.spec]p3: When a member is redeclared its access - // specifier must be same as its initial declaration. - if (AS != AS_none && AS != PrevDecl->getAccess()) { - Diag(Loc, diag::err_class_redeclared_with_different_access) - << New << getAccessName(AS); - Diag(PrevDecl->getLocation(), diag::note_previous_access_declaration) - << PrevDecl << getAccessName(PrevDecl->getAccess()); - } else - New->setAccess(PrevDecl->getAccess()); - } else - New->setAccess(AS); + // Set the access specifier. + SetMemberAccessSpecifier(New, PrevDecl, AS); if (TK == TK_Definition) New->startDefinition(); |