From e5b66a373414036db22d19647d913c2571df2701 Mon Sep 17 00:00:00 2001 From: David Blaikie Date: Mon, 24 May 2021 16:51:31 -0700 Subject: [PATCH] lld-coff: Simplify a few lambda uses after 7975dd033cb9 --- lld/COFF/Chunks.cpp | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/lld/COFF/Chunks.cpp b/lld/COFF/Chunks.cpp index ec64f65..36d5f37 100644 --- a/lld/COFF/Chunks.cpp +++ b/lld/COFF/Chunks.cpp @@ -824,18 +824,19 @@ void RVAFlagTableChunk::writeTo(uint8_t *buf) const { ulittle32_t rva; uint8_t flag; }; - RVAFlag *begin = reinterpret_cast(buf); - size_t cnt = 0; - for (const ChunkAndOffset &co : syms) { - begin[cnt].rva = co.inputChunk->getRVA() + co.offset; - begin[cnt].flag = 0; - ++cnt; + auto flags = + makeMutableArrayRef(reinterpret_cast(buf), syms.size()); + for (auto t : zip(syms, flags)) { + const auto &sym = std::get<0>(t); + auto &flag = std::get<1>(t); + flag.rva = sym.inputChunk->getRVA() + sym.offset; + flag.flag = 0; } - auto lt = [](RVAFlag &a, RVAFlag &b) { return a.rva < b.rva; }; - auto eq = [](RVAFlag &a, RVAFlag &b) { return a.rva == b.rva; }; - (void)eq; - std::sort(begin, begin + cnt, lt); - assert(std::unique(begin, begin + cnt, eq) == begin + cnt && + llvm::sort(flags, + [](const RVAFlag &a, const RVAFlag &b) { return a.rva < b.rva; }); + assert(llvm::unique(flags, [](const RVAFlag &a, + const RVAFlag &b) { return a.rva == b.rva; }) == + flags.end() && "RVA tables should be de-duplicated"); } -- 2.7.4