Skip to content

Commit e6025e7

Browse files
committed
Refactor conditional to use lambda
1 parent 7b42e10 commit e6025e7

File tree

1 file changed

+15
-26
lines changed

1 file changed

+15
-26
lines changed

clang/lib/CodeGen/CodeGenAction.cpp

Lines changed: 15 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,19 @@ bool BackendConsumer::LinkInModules(llvm::Module *M, bool ShouldLinkFiles) {
257257
CurLinkModule = LM.Module.get();
258258
bool Err;
259259

260+
auto DoLink = [&](auto &Mod) {
261+
if (LM.Internalize) {
262+
Err = Linker::linkModules(
263+
*M, std::move(Mod), LM.LinkFlags,
264+
[](llvm::Module &M, const llvm::StringSet<> &GVS) {
265+
internalizeModule(M, [&GVS](const llvm::GlobalValue &GV) {
266+
return !GV.hasName() || (GVS.count(GV.getName()) == 0);
267+
});
268+
});
269+
} else
270+
Err = Linker::linkModules(*M, std::move(Mod), LM.LinkFlags);
271+
};
272+
260273
// Create a Clone to move to the linker, which preserves the original
261274
// linking modules, allowing them to be linked again in the future
262275
if (ClRelinkBuiltinBitcodePostop) {
@@ -267,35 +280,11 @@ bool BackendConsumer::LinkInModules(llvm::Module *M, bool ShouldLinkFiles) {
267280

268281
std::unique_ptr<llvm::Module> Clone = llvm::CloneModule(*LM.Module);
269282

270-
if (LM.Internalize) {
271-
Err = Linker::linkModules(
272-
*M, std::move(Clone), LM.LinkFlags,
273-
[](llvm::Module &M, const llvm::StringSet<> &GVS) {
274-
internalizeModule(M, [&GVS](const llvm::GlobalValue &GV) {
275-
return !GV.hasName() || (GVS.count(GV.getName()) == 0);
276-
});
277-
});
278-
} else
279-
Err = Linker::linkModules(*M, std::move(Clone), LM.LinkFlags);
280-
281-
if (Err)
282-
return true;
283+
DoLink(Clone);
283284
}
284285
// Otherwise we can link (and clean up) the original modules
285286
else {
286-
if (LM.Internalize) {
287-
Err = Linker::linkModules(
288-
*M, std::move(LM.Module), LM.LinkFlags,
289-
[](llvm::Module &M, const llvm::StringSet<> &GVS) {
290-
internalizeModule(M, [&GVS](const llvm::GlobalValue &GV) {
291-
return !GV.hasName() || (GVS.count(GV.getName()) == 0);
292-
});
293-
});
294-
} else
295-
Err = Linker::linkModules(*M, std::move(LM.Module), LM.LinkFlags);
296-
297-
if (Err)
298-
return true;
287+
DoLink(LM.Module);
299288
}
300289
}
301290

0 commit comments

Comments
 (0)