diff options
| author | Lang Hames <lhames@gmail.com> | 2019-10-28 22:56:13 -0700 |
|---|---|---|
| committer | Lang Hames <lhames@gmail.com> | 2019-10-28 22:56:13 -0700 |
| commit | 5a955cc8b95a88fd0489d9b0a36ec86941ba6337 (patch) | |
| tree | 8ecde6f0349f8b2fa92a9e84d885618d2c867373 /llvm/lib/ExecutionEngine | |
| parent | 21bc8e5a137d76879223ac2d8ff1ba92e2ea3acb (diff) | |
| download | bcm5719-llvm-5a955cc8b95a88fd0489d9b0a36ec86941ba6337.tar.gz bcm5719-llvm-5a955cc8b95a88fd0489d9b0a36ec86941ba6337.zip | |
[JITLink] Tighten section sorting criteria to fix a flaky test case.
Sections may have zero size and zero-sized sections may share a start address
with other zero-sized sections. For the section overlap test to function
correctly zero-sized sections must be ordered before any non-zero sized ones.
This should fix the intermittent failures in the
test/ExecutionEngine/JITLink/X86/MachO_zero_fill_alignment.s test case that
have been observed on some builders.
Diffstat (limited to 'llvm/lib/ExecutionEngine')
| -rw-r--r-- | llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp b/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp index 7366f53ebf3..c1dc138ee70 100644 --- a/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp +++ b/llvm/lib/ExecutionEngine/JITLink/MachOLinkGraphBuilder.cpp @@ -179,7 +179,9 @@ Error MachOLinkGraphBuilder::createNormalizedSections() { llvm::sort(Sections, [](const NormalizedSection *LHS, const NormalizedSection *RHS) { assert(LHS && RHS && "Null section?"); - return LHS->Address < RHS->Address; + if (LHS->Address != RHS->Address) + return LHS->Address < RHS->Address; + return LHS->Size < RHS->Size; }); for (unsigned I = 0, E = Sections.size() - 1; I != E; ++I) { |

