r192203 - Convert anachronistic use of 'void *' to 'DeclContext *' in Scope that was a holdover from the long-dead Action interface.
Ted Kremenek
kremenek at apple.com
Tue Oct 8 11:08:18 PDT 2013
Good catch. Removed in r192211.
On Oct 8, 2013, at 10:15 AM, Benjamin Kramer <benny.kra at gmail.com> wrote:
>
> On 08.10.2013, at 19:08, Ted Kremenek <kremenek at apple.com> wrote:
>
>> Author: kremenek
>> Date: Tue Oct 8 12:08:03 2013
>> New Revision: 192203
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=192203&view=rev
>> Log:
>> Convert anachronistic use of 'void *' to 'DeclContext *' in Scope that was a holdover from the long-dead Action interface.
>>
>> Modified:
>> cfe/trunk/include/clang/Sema/Scope.h
>> cfe/trunk/lib/Sema/IdentifierResolver.cpp
>> cfe/trunk/lib/Sema/Sema.cpp
>> cfe/trunk/lib/Sema/SemaCodeComplete.cpp
>> cfe/trunk/lib/Sema/SemaDecl.cpp
>> cfe/trunk/lib/Sema/SemaDeclCXX.cpp
>> cfe/trunk/lib/Sema/SemaExprCXX.cpp
>> cfe/trunk/lib/Sema/SemaLookup.cpp
>> cfe/trunk/lib/Sema/SemaOpenMP.cpp
>> cfe/trunk/lib/Sema/SemaTemplate.cpp
>>
>> Modified: cfe/trunk/include/clang/Sema/Scope.h
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Sema/Scope.h?rev=192203&r1=192202&r2=192203&view=diff
>> ==============================================================================
>> --- cfe/trunk/include/clang/Sema/Scope.h (original)
>> +++ cfe/trunk/include/clang/Sema/Scope.h Tue Oct 8 12:08:03 2013
>> @@ -146,11 +146,10 @@ private:
>> typedef llvm::SmallPtrSet<Decl *, 32> DeclSetTy;
>> DeclSetTy DeclsInScope;
>>
>> - /// Entity - The entity with which this scope is associated. For
>> + /// The DeclContext with which this scope is associated. For
>> /// example, the entity of a class scope is the class itself, the
>> - /// entity of a function scope is a function, etc. This field is
>> - /// maintained by the Action implementation.
>> - void *Entity;
>> + /// entity of a function scope is a function, etc.
>> + DeclContext *Entity;
>>
>> typedef SmallVector<UsingDirectiveDecl *, 2> UsingDirectivesTy;
>> UsingDirectivesTy UsingDirectives;
>> @@ -239,8 +238,8 @@ public:
>> return DeclsInScope.count(D) != 0;
>> }
>>
>> - void* getEntity() const { return Entity; }
>> - void setEntity(void *E) { Entity = E; }
>> + DeclContext *getEntity() const { return Entity; }
>> + void setEntity(DeclContext *E) { Entity = E; }
>>
>> bool hasErrorOccurred() const { return ErrorTrap.hasErrorOccurred(); }
>>
>>
>> Modified: cfe/trunk/lib/Sema/IdentifierResolver.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/IdentifierResolver.cpp?rev=192203&r1=192202&r2=192203&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Sema/IdentifierResolver.cpp (original)
>> +++ cfe/trunk/lib/Sema/IdentifierResolver.cpp Tue Oct 8 12:08:03 2013
>> @@ -100,8 +100,7 @@ bool IdentifierResolver::isDeclInScope(D
>>
>> if (Ctx->isFunctionOrMethod() || S->isFunctionPrototypeScope()) {
>> // Ignore the scopes associated within transparent declaration contexts.
>> - while (S->getEntity() &&
>> - ((DeclContext *)S->getEntity())->isTransparentContext())
>> + while (S->getEntity() && S->getEntity()->isTransparentContext())
>> S = S->getParent();
>>
>> if (S->isDeclScope(D))
>>
>> Modified: cfe/trunk/lib/Sema/Sema.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/Sema.cpp?rev=192203&r1=192202&r2=192203&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Sema/Sema.cpp (original)
>> +++ cfe/trunk/lib/Sema/Sema.cpp Tue Oct 8 12:08:03 2013
>> @@ -997,7 +997,7 @@ Scope *Sema::getScopeForContext(DeclCont
>> // Ignore scopes that cannot have declarations. This is important for
>> // out-of-line definitions of static class members.
>> if (S->getFlags() & (Scope::DeclScope | Scope::TemplateParamScope))
>> - if (DeclContext *Entity = static_cast<DeclContext *> (S->getEntity()))
>> + if (DeclContext *Entity = S->getEntity())
>> if (Ctx == Entity->getPrimaryContext())
>> return S;
>> }
>>
>> Modified: cfe/trunk/lib/Sema/SemaCodeComplete.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaCodeComplete.cpp?rev=192203&r1=192202&r2=192203&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Sema/SemaCodeComplete.cpp (original)
>> +++ cfe/trunk/lib/Sema/SemaCodeComplete.cpp Tue Oct 8 12:08:03 2013
>> @@ -3613,7 +3613,7 @@ void Sema::CodeCompleteMemberReferenceEx
>> bool IsDependent = BaseType->isDependentType();
>> if (!IsDependent) {
>> for (Scope *DepScope = S; DepScope; DepScope = DepScope->getParent())
>> - if (DeclContext *Ctx = (DeclContext *)DepScope->getEntity()) {
>> + if (DeclContext *Ctx = DepScope->getEntity()) {
>> IsDependent = Ctx->isDependentContext();
>> break;
>> }
>> @@ -4151,7 +4151,7 @@ void Sema::CodeCompleteNamespaceDecl(Sco
>> if (!CodeCompleter)
>> return;
>>
>> - DeclContext *Ctx = (DeclContext *)S->getEntity();
>> + DeclContext *Ctx = S->getEntity();
>> if (!S->getParent())
>> Ctx = Context.getTranslationUnitDecl();
>>
>> @@ -4359,7 +4359,7 @@ void Sema::CodeCompleteConstructorInitia
>>
>> /// \brief Determine whether this scope denotes a namespace.
>> static bool isNamespaceScope(Scope *S) {
>> - DeclContext *DC = static_cast<DeclContext *>(S->getEntity());
>> + DeclContext *DC = S->getEntity();
>> if (!DC)
>> return false;
>>
>> @@ -6893,7 +6893,7 @@ void Sema::CodeCompleteObjCMethodDecl(Sc
>> }
>>
>> if (!SearchDecl && S) {
>> - if (DeclContext *DC = static_cast<DeclContext *>(S->getEntity()))
>> + if (DeclContext *DC = S->getEntity())
>> SearchDecl = dyn_cast<ObjCContainerDecl>(DC);
>> }
>>
>>
>> Modified: cfe/trunk/lib/Sema/SemaDecl.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDecl.cpp?rev=192203&r1=192202&r2=192203&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Sema/SemaDecl.cpp (original)
>> +++ cfe/trunk/lib/Sema/SemaDecl.cpp Tue Oct 8 12:08:03 2013
>> @@ -947,7 +947,7 @@ void Sema::ExitDeclaratorContext(Scope *
>> // enforced by an assert in EnterDeclaratorContext.
>> Scope *Ancestor = S->getParent();
>> while (!Ancestor->getEntity()) Ancestor = Ancestor->getParent();
>> - CurContext = (DeclContext*) Ancestor->getEntity();
>> + CurContext = Ancestor->getEntity();
>>
>> // We don't need to do anything with the scope, which is going to
>> // disappear.
>> @@ -1017,8 +1017,7 @@ void Sema::PushOnScopeChains(NamedDecl *
>> // Move up the scope chain until we find the nearest enclosing
>> // non-transparent context. The declaration will be introduced into this
>> // scope.
>> - while (S->getEntity() &&
>> - ((DeclContext *)S->getEntity())->isTransparentContext())
>> + while (S->getEntity() && S->getEntity()->isTransparentContext())
>> S = S->getParent();
>>
>> // Add scoped declarations into their context, so that they can be
>> @@ -1088,7 +1087,7 @@ bool Sema::isDeclInScope(NamedDecl *D, D
>> Scope *Sema::getScopeForDeclContext(Scope *S, DeclContext *DC) {
>> DeclContext *TargetDC = DC->getPrimaryContext();
>> do {
>> - if (DeclContext *ScopeDC = (DeclContext*) S->getEntity())
>> + if (DeclContext *ScopeDC = S->getEntity())
>> if (ScopeDC->getPrimaryContext() == TargetDC)
>> return S;
>> } while ((S = S->getParent()));
>> @@ -1464,8 +1463,7 @@ ObjCInterfaceDecl *Sema::getObjCInterfac
>> /// contain non-field names.
>> Scope *Sema::getNonFieldDeclScope(Scope *S) {
>> while (((S->getFlags() & Scope::DeclScope) == 0) ||
>> - (S->getEntity() &&
>> - ((DeclContext *)S->getEntity())->isTransparentContext()) ||
>> + (S->getEntity() && S->getEntity()->isTransparentContext()) ||
>> (S->isClassScope() && !getLangOpts().CPlusPlus))
>> S = S->getParent();
>> return S;
>> @@ -5435,6 +5433,18 @@ void Sema::CheckShadow(Scope *S, VarDecl
>> if (D->hasGlobalStorage())
>> return;
>>
>> + // Don't diagnose variables whose declarations and scope are expanded
>> + // from the same macro instantiation.
>> + SourceLocation DLoc = D->getLocation();
>> + if (DLoc.isMacroID()) {
>> +
>> +
>> +
>> +
>> + }
>> +
>> +
>> +
>
> This addition of invisible code looks unrelated.
>
> - Ben
>
>> DeclContext *NewDC = D->getDeclContext();
>>
>> // Only diagnose if we're shadowing an unambiguous field or variable.
>> @@ -10466,8 +10476,7 @@ Decl *Sema::ActOnTag(Scope *S, unsigned
>> (getLangOpts().CPlusPlus &&
>> S->isFunctionPrototypeScope()) ||
>> ((S->getFlags() & Scope::DeclScope) == 0) ||
>> - (S->getEntity() &&
>> - ((DeclContext *)S->getEntity())->isTransparentContext()))
>> + (S->getEntity() && S->getEntity()->isTransparentContext()))
>> S = S->getParent();
>> } else {
>> assert(TUK == TUK_Friend);
>>
>> Modified: cfe/trunk/lib/Sema/SemaDeclCXX.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclCXX.cpp?rev=192203&r1=192202&r2=192203&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Sema/SemaDeclCXX.cpp (original)
>> +++ cfe/trunk/lib/Sema/SemaDeclCXX.cpp Tue Oct 8 12:08:03 2013
>> @@ -6934,7 +6934,7 @@ void Sema::PushUsingDirective(Scope *S,
>> // If the scope has an associated entity and the using directive is at
>> // namespace or translation unit scope, add the UsingDirectiveDecl into
>> // its lookup structure so qualified name lookup can find it.
>> - DeclContext *Ctx = static_cast<DeclContext*>(S->getEntity());
>> + DeclContext *Ctx = S->getEntity();
>> if (Ctx && !Ctx->isFunctionOrMethod())
>> Ctx->addDecl(UDir);
>> else
>>
>> Modified: cfe/trunk/lib/Sema/SemaExprCXX.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExprCXX.cpp?rev=192203&r1=192202&r2=192203&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Sema/SemaExprCXX.cpp (original)
>> +++ cfe/trunk/lib/Sema/SemaExprCXX.cpp Tue Oct 8 12:08:03 2013
>> @@ -305,7 +305,7 @@ ParsedType Sema::getDestructorName(Sourc
>> SemaDiagnosticBuilder DtorDiag = Diag(NameLoc,
>> diag::err_destructor_class_name);
>> if (S) {
>> - const DeclContext *Ctx = static_cast<DeclContext*>(S->getEntity());
>> + const DeclContext *Ctx = S->getEntity();
>> if (const CXXRecordDecl *Class = dyn_cast_or_null<CXXRecordDecl>(Ctx))
>> DtorDiag << FixItHint::CreateReplacement(SourceRange(NameLoc),
>> Class->getNameAsString());
>>
>> Modified: cfe/trunk/lib/Sema/SemaLookup.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaLookup.cpp?rev=192203&r1=192202&r2=192203&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Sema/SemaLookup.cpp (original)
>> +++ cfe/trunk/lib/Sema/SemaLookup.cpp Tue Oct 8 12:08:03 2013
>> @@ -102,15 +102,14 @@ namespace {
>> // During unqualified name lookup, the names appear as if they
>> // were declared in the nearest enclosing namespace which contains
>> // both the using-directive and the nominated namespace.
>> - DeclContext *InnermostFileDC
>> - = static_cast<DeclContext*>(InnermostFileScope->getEntity());
>> + DeclContext *InnermostFileDC = InnermostFileScope->getEntity();
>> assert(InnermostFileDC && InnermostFileDC->isFileContext());
>>
>> for (; S; S = S->getParent()) {
>> // C++ [namespace.udir]p1:
>> // A using-directive shall not appear in class scope, but may
>> // appear in namespace scope or in block scope.
>> - DeclContext *Ctx = static_cast<DeclContext*>(S->getEntity());
>> + DeclContext *Ctx = S->getEntity();
>> if (Ctx && Ctx->isFileContext()) {
>> visit(Ctx, Ctx);
>> } else if (!Ctx || Ctx->isFunctionOrMethod()) {
>> @@ -775,7 +774,7 @@ CppNamespaceLookup(Sema &S, LookupResult
>> }
>>
>> static bool isNamespaceOrTranslationUnitScope(Scope *S) {
>> - if (DeclContext *Ctx = static_cast<DeclContext*>(S->getEntity()))
>> + if (DeclContext *Ctx = S->getEntity())
>> return Ctx->isFileContext();
>> return false;
>> }
>> @@ -788,12 +787,12 @@ static bool isNamespaceOrTranslationUnit
>> // name lookup should continue searching in this semantic context when
>> // it leaves the current template parameter scope.
>> static std::pair<DeclContext *, bool> findOuterContext(Scope *S) {
>> - DeclContext *DC = static_cast<DeclContext *>(S->getEntity());
>> + DeclContext *DC = S->getEntity();
>> DeclContext *Lexical = 0;
>> for (Scope *OuterS = S->getParent(); OuterS;
>> OuterS = OuterS->getParent()) {
>> if (OuterS->getEntity()) {
>> - Lexical = static_cast<DeclContext *>(OuterS->getEntity());
>> + Lexical = OuterS->getEntity();
>> break;
>> }
>> }
>> @@ -879,7 +878,7 @@ bool Sema::CppLookupName(LookupResult &R
>> // go through the scope stack to implicitly declare
>> if (isImplicitlyDeclaredMemberFunctionName(Name)) {
>> for (Scope *PreS = S; PreS; PreS = PreS->getParent())
>> - if (DeclContext *DC = static_cast<DeclContext *>(PreS->getEntity()))
>> + if (DeclContext *DC = PreS->getEntity())
>> DeclareImplicitMemberFunctionsWithName(*this, Name, DC);
>> }
>>
>> @@ -918,7 +917,7 @@ bool Sema::CppLookupName(LookupResult &R
>> FindLocalExternScope FindLocals(R);
>>
>> for (; S && !isNamespaceOrTranslationUnitScope(S); S = S->getParent()) {
>> - DeclContext *Ctx = static_cast<DeclContext*>(S->getEntity());
>> + DeclContext *Ctx = S->getEntity();
>>
>> // Check whether the IdResolver has anything in this scope.
>> bool Found = false;
>> @@ -1101,7 +1100,7 @@ bool Sema::CppLookupName(LookupResult &R
>> return true;
>> }
>>
>> - DeclContext *Ctx = static_cast<DeclContext *>(S->getEntity());
>> + DeclContext *Ctx = S->getEntity();
>> if (!Ctx && S->isTemplateParamScope() && OutsideOfTemplateParamDC &&
>> S->getParent() && !S->getParent()->isTemplateParamScope()) {
>> // We've just searched the last template parameter scope and
>> @@ -1317,9 +1316,7 @@ bool Sema::LookupName(LookupResult &R, S
>> if (NameKind == Sema::LookupRedeclarationWithLinkage) {
>> // Find the nearest non-transparent declaration scope.
>> while (!(S->getFlags() & Scope::DeclScope) ||
>> - (S->getEntity() &&
>> - static_cast<DeclContext *>(S->getEntity())
>> - ->isTransparentContext()))
>> + (S->getEntity() && S->getEntity()->isTransparentContext()))
>> S = S->getParent();
>> }
>>
>> @@ -3216,8 +3213,8 @@ static void LookupVisibleDecls(Scope *S,
>>
>> if (!S->getEntity() ||
>> (!S->getParent() &&
>> - !Visited.alreadyVisitedContext((DeclContext *)S->getEntity())) ||
>> - ((DeclContext *)S->getEntity())->isFunctionOrMethod()) {
>> + !Visited.alreadyVisitedContext(S->getEntity())) ||
>> + (S->getEntity())->isFunctionOrMethod()) {
>> FindLocalExternScope FindLocals(Result);
>> // Walk through the declarations in this Scope.
>> for (Scope::decl_iterator D = S->decl_begin(), DEnd = S->decl_end();
>> @@ -3236,7 +3233,7 @@ static void LookupVisibleDecls(Scope *S,
>> // Look into this scope's declaration context, along with any of its
>> // parent lookup contexts (e.g., enclosing classes), up to the point
>> // where we hit the context stored in the next outer scope.
>> - Entity = (DeclContext *)S->getEntity();
>> + Entity = S->getEntity();
>> DeclContext *OuterCtx = findOuterContext(S).first; // FIXME
>>
>> for (DeclContext *Ctx = Entity; Ctx && !Ctx->Equals(OuterCtx);
>>
>> Modified: cfe/trunk/lib/Sema/SemaOpenMP.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaOpenMP.cpp?rev=192203&r1=192202&r2=192203&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Sema/SemaOpenMP.cpp (original)
>> +++ cfe/trunk/lib/Sema/SemaOpenMP.cpp Tue Oct 8 12:08:03 2013
>> @@ -245,8 +245,7 @@ bool DSAStackTy::isOpenMPLocal(VarDecl *
>> isOpenMPLocal =
>> CurScope &&
>> isa<CapturedDecl>(D->getDeclContext()) &&
>> - static_cast<DeclContext *>(
>> - CurScope->getFnParent()->getEntity())->Encloses(D->getDeclContext());
>> + CurScope->getFnParent()->getEntity()->Encloses(D->getDeclContext());
>> }
>> return isOpenMPLocal;
>> }
>>
>> Modified: cfe/trunk/lib/Sema/SemaTemplate.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaTemplate.cpp?rev=192203&r1=192202&r2=192203&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Sema/SemaTemplate.cpp (original)
>> +++ cfe/trunk/lib/Sema/SemaTemplate.cpp Tue Oct 8 12:08:03 2013
>> @@ -5450,7 +5450,7 @@ Sema::CheckTemplateDeclScope(Scope *S, T
>> // C++ [temp]p2:
>> // A template-declaration can appear only as a namespace scope or
>> // class scope declaration.
>> - DeclContext *Ctx = static_cast<DeclContext *>(S->getEntity());
>> + DeclContext *Ctx = S->getEntity();
>> if (Ctx && isa<LinkageSpecDecl>(Ctx) &&
>> cast<LinkageSpecDecl>(Ctx)->getLanguage() != LinkageSpecDecl::lang_cxx)
>> return Diag(TemplateParams->getTemplateLoc(), diag::err_template_linkage)
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
More information about the cfe-commits
mailing list