Implement DwarfLLVMRegPair::operator< without violating asymmetry.
authorBenjamin Kramer <benny.kra@googlemail.com>
Wed, 4 Apr 2012 08:24:08 +0000 (08:24 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Wed, 4 Apr 2012 08:24:08 +0000 (08:24 +0000)
MSVC8 verifies this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154002 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/MC/MCRegisterInfo.h

index 71bdef2836327890464590b2751c21aa5f802855..27acf2f2cc2118b2d5063055f94878028d0b1d14 100644 (file)
@@ -134,8 +134,7 @@ public:
     unsigned FromReg;
     unsigned ToReg;
 
-    bool operator==(unsigned Reg) const { return FromReg == Reg; }
-    bool operator<(unsigned Reg) const { return FromReg < Reg; }
+    bool operator<(DwarfLLVMRegPair RHS) const { return FromReg < RHS.FromReg; }
   };
 private:
   const MCRegisterDesc *Desc;                 // Pointer to the descriptor array
@@ -315,7 +314,8 @@ public:
     const DwarfLLVMRegPair *M = isEH ? EHL2DwarfRegs : L2DwarfRegs;
     unsigned Size = isEH ? EHL2DwarfRegsSize : L2DwarfRegsSize;
 
-    const DwarfLLVMRegPair *I = std::lower_bound(M, M+Size, RegNum);
+    DwarfLLVMRegPair Key = { RegNum, 0 };
+    const DwarfLLVMRegPair *I = std::lower_bound(M, M+Size, Key);
     if (I == M+Size || I->FromReg != RegNum)
       return -1;
     return I->ToReg;
@@ -327,7 +327,8 @@ public:
     const DwarfLLVMRegPair *M = isEH ? EHDwarf2LRegs : Dwarf2LRegs;
     unsigned Size = isEH ? EHDwarf2LRegsSize : Dwarf2LRegsSize;
 
-    const DwarfLLVMRegPair *I = std::lower_bound(M, M+Size, RegNum);
+    DwarfLLVMRegPair Key = { RegNum, 0 };
+    const DwarfLLVMRegPair *I = std::lower_bound(M, M+Size, Key);
     assert(I != M+Size && I->FromReg == RegNum && "Invalid RegNum");
     return I->ToReg;
   }