// Link in the function bodies that are defined in the source module into
// DstM.
- for (Module::iterator SF = SrcM->begin(), E = SrcM->end(); SF != E; ++SF) {
+ for (Function &SF : *SrcM) {
+ // Skip if no body (function is external).
+ if (SF.isDeclaration())
+ continue;
+
// Skip if not linking from source.
- if (DoNotLinkFromSource.count(SF)) continue;
+ if (DoNotLinkFromSource.count(&SF))
+ continue;
- Function *DF = cast<Function>(ValueMap[SF]);
+ Function *DF = cast<Function>(ValueMap[&SF]);
// Link in the prefix data.
- if (SF->hasPrefixData())
- DF->setPrefixData(MapValue(
- SF->getPrefixData(), ValueMap, RF_None, &TypeMap, &ValMaterializer));
+ if (SF.hasPrefixData())
+ DF->setPrefixData(MapValue(SF.getPrefixData(), ValueMap, RF_None,
+ &TypeMap, &ValMaterializer));
// Link in the prologue data.
- if (SF->hasPrologueData())
- DF->setPrologueData(MapValue(
- SF->getPrologueData(), ValueMap, RF_None, &TypeMap, &ValMaterializer));
+ if (SF.hasPrologueData())
+ DF->setPrologueData(MapValue(SF.getPrologueData(), ValueMap, RF_None,
+ &TypeMap, &ValMaterializer));
- // Skip if no body (function is external).
- if (SF->isDeclaration())
- continue;
-
- if (linkFunctionBody(DF, SF))
+ if (linkFunctionBody(DF, &SF))
return true;
}