diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-12-18 22:40:27 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-12-18 22:40:27 +0000 |
commit | be2cfb26d34f6e04eca71fe46126e15b1cfe0d71 (patch) | |
tree | e8f2765d31ae1e621921c6bd51170f8de34e81c4 /llvm/tools/llvm-extract/llvm-extract.cpp | |
parent | db0ac5572fcf7e6d529ff70f4871707f66c4a623 (diff) | |
download | bcm5719-llvm-be2cfb26d34f6e04eca71fe46126e15b1cfe0d71.tar.gz bcm5719-llvm-be2cfb26d34f6e04eca71fe46126e15b1cfe0d71.zip |
Use a lambda to reduce code duplication.
llvm-svn: 256050
Diffstat (limited to 'llvm/tools/llvm-extract/llvm-extract.cpp')
-rw-r--r-- | llvm/tools/llvm-extract/llvm-extract.cpp | 38 |
1 files changed, 15 insertions, 23 deletions
diff --git a/llvm/tools/llvm-extract/llvm-extract.cpp b/llvm/tools/llvm-extract/llvm-extract.cpp index 936496cd7fe..ca228da74d8 100644 --- a/llvm/tools/llvm-extract/llvm-extract.cpp +++ b/llvm/tools/llvm-extract/llvm-extract.cpp @@ -222,35 +222,27 @@ int main(int argc, char **argv) { } } - // Materialize requisite global values. - if (!DeleteFn) - for (size_t i = 0, e = GVs.size(); i != e; ++i) { - GlobalValue *GV = GVs[i]; - if (std::error_code EC = GV->materialize()) { - errs() << argv[0] << ": error reading input: " << EC.message() << "\n"; - return 1; - } + auto Materialize = [&](GlobalValue &GV) { + if (std::error_code EC = GV.materialize()) { + errs() << argv[0] << ": error reading input: " << EC.message() << "\n"; + exit(1); } - else { + }; + + // Materialize requisite global values. + if (!DeleteFn) { + for (size_t i = 0, e = GVs.size(); i != e; ++i) + Materialize(*GVs[i]); + } else { // Deleting. Materialize every GV that's *not* in GVs. SmallPtrSet<GlobalValue *, 8> GVSet(GVs.begin(), GVs.end()); for (auto &G : M->globals()) { - if (!GVSet.count(&G)) { - if (std::error_code EC = G.materialize()) { - errs() << argv[0] << ": error reading input: " << EC.message() - << "\n"; - return 1; - } - } + if (!GVSet.count(&G)) + Materialize(G); } for (auto &F : *M) { - if (!GVSet.count(&F)) { - if (std::error_code EC = F.materialize()) { - errs() << argv[0] << ": error reading input: " << EC.message() - << "\n"; - return 1; - } - } + if (!GVSet.count(&F)) + Materialize(F); } } |