зеркало из https://github.com/microsoft/clang-1.git
Add a way to get the index of a method. Assert that we have the same index for now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90533 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
29202d5065
Коммит
c0c4993d1c
|
@ -90,13 +90,17 @@ private:
|
|||
// Replace the old decl with the new decl.
|
||||
Methods[Index] = GD;
|
||||
|
||||
// Now remove the old decl from the method to index map.
|
||||
MethodToIndexMap.erase(i);
|
||||
|
||||
// And add the new.
|
||||
MethodToIndexMap[GD] = Index;
|
||||
}
|
||||
|
||||
/// getIndex - Returns the index of the given method.
|
||||
uint64_t getIndex(GlobalDecl GD) const {
|
||||
assert(MethodToIndexMap.count(GD) && "Did not find method!");
|
||||
|
||||
return MethodToIndexMap.lookup(GD);
|
||||
}
|
||||
|
||||
MethodsVectorTy::size_type size() const {
|
||||
return Methods.size();
|
||||
}
|
||||
|
@ -106,7 +110,7 @@ private:
|
|||
Methods.clear();
|
||||
}
|
||||
|
||||
GlobalDecl operator[](unsigned Index) const {
|
||||
GlobalDecl operator[](uint64_t Index) const {
|
||||
return Methods[Index];
|
||||
}
|
||||
};
|
||||
|
@ -751,9 +755,10 @@ bool VtableBuilder::OverrideMethod(GlobalDecl GD, llvm::Constant *m,
|
|||
|
||||
for (Index_t i = 0, e = submethods.size();
|
||||
i != e; ++i) {
|
||||
// FIXME: begin_overridden_methods might be too lax, covariance */
|
||||
if (submethods[i] != om)
|
||||
continue;
|
||||
|
||||
assert(i == Methods.getIndex(OGD));
|
||||
|
||||
QualType ReturnType =
|
||||
MD->getType()->getAs<FunctionType>()->getResultType();
|
||||
|
|
Загрузка…
Ссылка в новой задаче