forked from OSchip/llvm-project
remove some defensive code: LocalInstantiationScope::getInstantiationOf
and findInstantiationOf can never return null, even on invalid code. llvm-svn: 125769
This commit is contained in:
parent
bdc1a42aef
commit
15a776fff7
|
@ -2168,8 +2168,7 @@ bool Sema::Subst(const TemplateArgumentLoc *Args, unsigned NumArgs,
|
|||
|
||||
Decl *LocalInstantiationScope::getInstantiationOf(const Decl *D) {
|
||||
llvm::PointerUnion<Decl *, DeclArgumentPack *> *Found= findInstantiationOf(D);
|
||||
if (!Found)
|
||||
return 0;
|
||||
assert(Found);
|
||||
|
||||
if (Found->is<Decl *>())
|
||||
return Found->get<Decl *>();
|
||||
|
@ -2202,8 +2201,7 @@ LocalInstantiationScope::findInstantiationOf(const Decl *D) {
|
|||
break;
|
||||
}
|
||||
|
||||
assert(D->isInvalidDecl() &&
|
||||
"declaration was not instantiated in this scope!");
|
||||
assert(0 && "declaration was not instantiated in this scope!");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -503,8 +503,7 @@ bool Sema::CheckParameterPacksForExpansion(SourceLocation EllipsisLoc,
|
|||
llvm::PointerUnion<Decl *, DeclArgumentPack *> *Instantiation
|
||||
= CurrentInstantiationScope->findInstantiationOf(
|
||||
Unexpanded[I].first.get<NamedDecl *>());
|
||||
if (Instantiation &&
|
||||
Instantiation->is<DeclArgumentPack *>()) {
|
||||
if (Instantiation->is<DeclArgumentPack *>()) {
|
||||
// We could expand this function parameter pack.
|
||||
NewPackSize = Instantiation->get<DeclArgumentPack *>()->size();
|
||||
} else {
|
||||
|
@ -594,7 +593,7 @@ unsigned Sema::getNumArgumentsInExpansion(QualType T,
|
|||
llvm::PointerUnion<Decl *, DeclArgumentPack *> *Instantiation
|
||||
= CurrentInstantiationScope->findInstantiationOf(
|
||||
Unexpanded[I].first.get<NamedDecl *>());
|
||||
if (Instantiation && Instantiation->is<DeclArgumentPack *>())
|
||||
if (Instantiation->is<DeclArgumentPack *>())
|
||||
return Instantiation->get<DeclArgumentPack *>()->size();
|
||||
|
||||
continue;
|
||||
|
|
Loading…
Reference in New Issue