Commit 1be7bd1f authored by Bill Wendling's avatar Bill Wendling
Browse files

Merging r181864:

------------------------------------------------------------------------
r181864 | chapuni | 2013-05-14 19:16:23 -0700 (Tue, 14 May 2013) | 10 lines

ELFRelocationEntry::operator<(): Try to stabilize the order. r_offset was insufficient to sort Relocs.

It should fix llvm/test/CodeGen/ARM/ehabi-mc-compact-pr*.ll on some hosts.

  RELOCATION RECORDS FOR [.ARM.exidx]:
  0 R_ARM_PREL31 .text
  0 R_ARM_NONE __aeabi_unwind_cpp_pr0

FIXME: I am not sure of the directions of extra comparators, in Type and Index.
For now, they are different from the direction in r_offset.
------------------------------------------------------------------------

llvm-svn: 182149
parent b9f4df59
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -45,7 +45,14 @@ struct ELFRelocationEntry {

  // Support lexicographic sorting.
  bool operator<(const ELFRelocationEntry &RE) const {
    if (RE.r_offset != r_offset)
      return RE.r_offset < r_offset;
    if (Type != RE.Type)
      return Type < RE.Type;
    if (Index != RE.Index)
      return Index < RE.Index;
    llvm_unreachable("ELFRelocs might be unstable!");
    return 0;
  }
};