forked from OSchip/llvm-project
Miscellaneous found by inspection with John and Sebastian
llvm-svn: 112315
This commit is contained in:
parent
6c1395f62a
commit
fcee9460c6
|
|
@ -701,11 +701,10 @@ public:
|
||||||
bool isFileVarDecl() const {
|
bool isFileVarDecl() const {
|
||||||
if (getKind() != Decl::Var)
|
if (getKind() != Decl::Var)
|
||||||
return false;
|
return false;
|
||||||
if (const DeclContext *Ctx = getDeclContext()) {
|
|
||||||
Ctx = Ctx->getLookupContext();
|
if (getDeclContext()->getLookupContext()->isFileContext())
|
||||||
if (isa<TranslationUnitDecl>(Ctx) || isa<NamespaceDecl>(Ctx) )
|
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
if (isStaticDataMember())
|
if (isStaticDataMember())
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2627,12 +2627,12 @@ isOutOfScopePreviousDeclaration(NamedDecl *PrevDecl, DeclContext *DC,
|
||||||
if (!OuterContext->isFunctionOrMethod())
|
if (!OuterContext->isFunctionOrMethod())
|
||||||
// This rule only applies to block-scope declarations.
|
// This rule only applies to block-scope declarations.
|
||||||
return false;
|
return false;
|
||||||
else {
|
|
||||||
DeclContext *PrevOuterContext = PrevDecl->getDeclContext();
|
DeclContext *PrevOuterContext = PrevDecl->getDeclContext();
|
||||||
if (PrevOuterContext->isRecord())
|
if (PrevOuterContext->isRecord())
|
||||||
// We found a member function: ignore it.
|
// We found a member function: ignore it.
|
||||||
return false;
|
return false;
|
||||||
else {
|
|
||||||
// Find the innermost enclosing namespace for the new and
|
// Find the innermost enclosing namespace for the new and
|
||||||
// previous declarations.
|
// previous declarations.
|
||||||
while (!OuterContext->isFileContext())
|
while (!OuterContext->isFileContext())
|
||||||
|
|
@ -2642,12 +2642,9 @@ isOutOfScopePreviousDeclaration(NamedDecl *PrevDecl, DeclContext *DC,
|
||||||
|
|
||||||
// The previous declaration is in a different namespace, so it
|
// The previous declaration is in a different namespace, so it
|
||||||
// isn't the same function.
|
// isn't the same function.
|
||||||
if (OuterContext->getPrimaryContext() !=
|
if (!OuterContext->Equals(PrevOuterContext))
|
||||||
PrevOuterContext->getPrimaryContext())
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -5511,6 +5508,7 @@ Decl *Sema::ActOnTag(Scope *S, unsigned TagSpec, TagUseKind TUK,
|
||||||
PrevDecl = Tag;
|
PrevDecl = Tag;
|
||||||
Previous.clear();
|
Previous.clear();
|
||||||
Previous.addDecl(Tag);
|
Previous.addDecl(Tag);
|
||||||
|
Previous.resolveKind();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue