diff options
| author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-11-08 17:17:31 +0000 | 
|---|---|---|
| committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-11-08 17:17:31 +0000 | 
| commit | 16ac9be7f0b2a7c716adddc92b7ea5b04fe94ba5 (patch) | |
| tree | 02d1b08d174886a7f7776e44c65cb7af65ae3fff /clang/lib/Sema/SemaDeclCXX.cpp | |
| parent | 430a58edd8679fc603b5e6d16e995d9b5eb90c3e (diff) | |
| download | bcm5719-llvm-16ac9be7f0b2a7c716adddc92b7ea5b04fe94ba5.tar.gz bcm5719-llvm-16ac9be7f0b2a7c716adddc92b7ea5b04fe94ba5.zip | |
Implement Sema support for C++ nested-name-specifiers.
llvm-svn: 58916
Diffstat (limited to 'clang/lib/Sema/SemaDeclCXX.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index 2ac5804d1e6..8bdb389f1f2 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -264,7 +264,14 @@ void Sema::CheckCXXDefaultArguments(FunctionDecl *FD) {  /// the innermost class.  bool Sema::isCurrentClassName(const IdentifierInfo &II, Scope *,                                const CXXScopeSpec *SS) { -  if (CXXRecordDecl *CurDecl = dyn_cast_or_null<CXXRecordDecl>(CurContext)) +  CXXRecordDecl *CurDecl; +  if (SS) { +    DeclContext *DC = static_cast<DeclContext*>(SS->getScopeRep()); +    CurDecl = dyn_cast_or_null<CXXRecordDecl>(DC); +  } else +    CurDecl = dyn_cast_or_null<CXXRecordDecl>(CurContext); + +  if (CurDecl)      return &II == CurDecl->getIdentifier();    else      return false; @@ -1253,7 +1260,7 @@ Sema::DeclTy *Sema::ActOnStartNamespaceDef(Scope *NamespcScope,      // in that declarative region, it is treated as an original-namespace-name.      Decl *PrevDecl = -        LookupDecl(II, Decl::IDNS_Tag | Decl::IDNS_Ordinary, DeclRegionScope, +        LookupDecl(II, Decl::IDNS_Tag | Decl::IDNS_Ordinary, DeclRegionScope, 0,                     /*enableLazyBuiltinCreation=*/false);      if (PrevDecl && isDeclInScope(PrevDecl, CurContext, DeclRegionScope)) { | 

