зеркало из https://github.com/microsoft/clang-1.git
More work in preparation of getting rid of the submethods loop.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90535 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
0e881169af
Коммит
dd454bee6b
|
@ -754,7 +754,9 @@ bool VtableBuilder::OverrideMethod(GlobalDecl GD, llvm::Constant *m,
|
||||||
if (submethods[i] != om)
|
if (submethods[i] != om)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
assert(i == Methods.getIndex(OGD));
|
uint64_t Index = Methods.getIndex(OGD);
|
||||||
|
|
||||||
|
assert(i == Index);
|
||||||
|
|
||||||
QualType ReturnType =
|
QualType ReturnType =
|
||||||
MD->getType()->getAs<FunctionType>()->getResultType();
|
MD->getType()->getAs<FunctionType>()->getResultType();
|
||||||
|
@ -778,7 +780,7 @@ bool VtableBuilder::OverrideMethod(GlobalDecl GD, llvm::Constant *m,
|
||||||
|
|
||||||
Methods.OverrideMethod(OGD, GD);
|
Methods.OverrideMethod(OGD, GD);
|
||||||
|
|
||||||
submethods[i] = m;
|
submethods[Index] = m;
|
||||||
ThisAdjustments.erase(i);
|
ThisAdjustments.erase(i);
|
||||||
if (MorallyVirtual || VCall.count(OGD)) {
|
if (MorallyVirtual || VCall.count(OGD)) {
|
||||||
Index_t &idx = VCall[OGD];
|
Index_t &idx = VCall[OGD];
|
||||||
|
@ -811,7 +813,7 @@ bool VtableBuilder::OverrideMethod(GlobalDecl GD, llvm::Constant *m,
|
||||||
VirtualAdjustment);
|
VirtualAdjustment);
|
||||||
|
|
||||||
if (!isPure && !ThisAdjustment.isEmpty())
|
if (!isPure && !ThisAdjustment.isEmpty())
|
||||||
ThisAdjustments[i] = ThisAdjustment;
|
ThisAdjustments[Index] = ThisAdjustment;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -822,7 +824,7 @@ bool VtableBuilder::OverrideMethod(GlobalDecl GD, llvm::Constant *m,
|
||||||
ThunkAdjustment ThisAdjustment(NonVirtualAdjustment, 0);
|
ThunkAdjustment ThisAdjustment(NonVirtualAdjustment, 0);
|
||||||
|
|
||||||
if (!isPure)
|
if (!isPure)
|
||||||
ThisAdjustments[i] = ThisAdjustment;
|
ThisAdjustments[Index] = ThisAdjustment;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче