[ELF] - Fixed 3 testases failtures on win32 configuration.
authorGeorge Rimar <grimar@accesssoftek.com>
Thu, 21 Jul 2016 15:35:06 +0000 (15:35 +0000)
committerGeorge Rimar <grimar@accesssoftek.com>
Thu, 21 Jul 2016 15:35:06 +0000 (15:35 +0000)
Had 3 testcases failtures:
ELF/eh-frame-merge.s
ELF/gc-sections-eh.s
ELF/gc-sections-lsda.s​

Problem was that OutputOff is size_t, which is 32
for this configuration and next
condition never was checked correctly:

if (PieceI->OutputOff == (uintX_t)-1)
  continue;

llvm-svn: 276296

lld/ELF/Relocations.cpp

index f0a2d17..7df92d5 100644 (file)
@@ -554,7 +554,7 @@ static void scanRelocs(InputSectionBase<ELFT> &C, ArrayRef<RelTy> Rels) {
     uintX_t Offset;
     if (PieceI != PieceE) {
       assert(PieceI->InputOff <= RI.r_offset && "Relocation not in any piece");
-      if (PieceI->OutputOff == (uintX_t)-1)
+      if (PieceI->OutputOff == (size_t)-1)
         continue;
       Offset = PieceI->OutputOff + RI.r_offset - PieceI->InputOff;
     } else {