forked from OSchip/llvm-project
Add a way to get the index of a method. Assert that we have the same index for now.
llvm-svn: 90533
This commit is contained in:
parent
b07567c315
commit
e609636e0d
|
@ -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,10 +755,11 @@ 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();
|
||||
QualType OverriddenReturnType =
|
||||
|
|
Loading…
Reference in New Issue