Getting rid of old iterator loops

llvm-svn: 243431
This commit is contained in:
Piotr Padlewski 2015-07-28 16:10:58 +00:00
parent 51fd242cfc
commit 44b4ce8e9b
2 changed files with 11 additions and 15 deletions

View File

@ -187,12 +187,12 @@ CodeGenFunction::GenerateVarArgsThunk(llvm::Function *Fn,
if (!Thunk.Return.isEmpty()) {
// Fix up the returned value, if necessary.
for (llvm::Function::iterator I = Fn->begin(), E = Fn->end(); I != E; I++) {
llvm::Instruction *T = I->getTerminator();
for (llvm::BasicBlock &BB : *Fn) {
llvm::Instruction *T = BB.getTerminator();
if (isa<llvm::ReturnInst>(T)) {
RValue RV = RValue::get(T->getOperand(0));
T->eraseFromParent();
Builder.SetInsertPoint(&*I);
Builder.SetInsertPoint(&BB);
RV = PerformReturnAdjustment(*this, ResultType, RV, Thunk);
Builder.CreateRet(RV.getScalarVal());
break;
@ -850,13 +850,9 @@ void CodeGenModule::EmitDeferredVTables() {
size_t savedSize = DeferredVTables.size();
#endif
typedef std::vector<const CXXRecordDecl *>::const_iterator const_iterator;
for (const_iterator i = DeferredVTables.begin(),
e = DeferredVTables.end(); i != e; ++i) {
const CXXRecordDecl *RD = *i;
for (const CXXRecordDecl *RD : DeferredVTables)
if (shouldEmitVTableAtEndOfTranslationUnit(*this, RD))
VTables.GenerateClassData(RD);
}
assert(savedSize == DeferredVTables.size() &&
"deferred extra v-tables during v-table emission?");

View File

@ -1043,25 +1043,25 @@ static CharUnits computeOffsetHint(ASTContext &Context,
CharUnits Offset;
// Now walk all possible inheritance paths.
for (CXXBasePaths::paths_iterator I = Paths.begin(), E = Paths.end(); I != E;
++I) {
if (I->Access != AS_public) // Ignore non-public inheritance.
for (const CXXBasePath &Path : Paths) {
if (Path.Access != AS_public) // Ignore non-public inheritance.
continue;
++NumPublicPaths;
for (CXXBasePath::iterator J = I->begin(), JE = I->end(); J != JE; ++J) {
for (const CXXBasePathElement &PathElement : Path) {
// If the path contains a virtual base class we can't give any hint.
// -1: no hint.
if (J->Base->isVirtual())
if (PathElement.Base->isVirtual())
return CharUnits::fromQuantity(-1ULL);
if (NumPublicPaths > 1) // Won't use offsets, skip computation.
continue;
// Accumulate the base class offsets.
const ASTRecordLayout &L = Context.getASTRecordLayout(J->Class);
Offset += L.getBaseClassOffset(J->Base->getType()->getAsCXXRecordDecl());
const ASTRecordLayout &L = Context.getASTRecordLayout(PathElement.Class);
Offset += L.getBaseClassOffset(
PathElement.Base->getType()->getAsCXXRecordDecl());
}
}