diff --git a/lld/ELF/SyntheticSections.cpp b/lld/ELF/SyntheticSections.cpp index 785a56cdb349..0a9c7a081eb8 100644 --- a/lld/ELF/SyntheticSections.cpp +++ b/lld/ELF/SyntheticSections.cpp @@ -1939,11 +1939,8 @@ bool AndroidPackedRelocationSection::updateAllocSize(Ctx &ctx) { // For Rela, we also want to sort by r_addend when r_info is the same. This // enables us to group by r_addend as well. llvm::sort(nonRelatives, [](const Elf_Rela &a, const Elf_Rela &b) { - if (a.r_info != b.r_info) - return a.r_info < b.r_info; - if (a.r_addend != b.r_addend) - return a.r_addend < b.r_addend; - return a.r_offset < b.r_offset; + return std::tie(a.r_info, a.r_addend, a.r_offset) < + std::tie(b.r_info, b.r_addend, b.r_offset); }); // Group relocations with the same r_info. Note that each group emits a group diff --git a/lld/MachO/UnwindInfoSection.cpp b/lld/MachO/UnwindInfoSection.cpp index 624464e41d77..6e9f6c2aba74 100644 --- a/lld/MachO/UnwindInfoSection.cpp +++ b/lld/MachO/UnwindInfoSection.cpp @@ -535,11 +535,9 @@ void UnwindInfoSectionImpl::finalize() { llvm::sort(commonEncodings, [](const std::pair &a, const std::pair &b) { - if (a.second == b.second) - // When frequencies match, secondarily sort on encoding - // to maintain parity with validate-unwind-info.py - return a.first > b.first; - return a.second > b.second; + // When frequencies match, secondarily sort on encoding + // to maintain parity with validate-unwind-info.py + return std::tie(a.second, a.first) > std::tie(b.second, b.first); }); // Truncate the vector to 127 elements.