Add an assert to check that the Addend fits the file format.
authorRafael Espindola <rafael.espindola@gmail.com>
Thu, 4 Aug 2011 13:05:26 +0000 (13:05 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Thu, 4 Aug 2011 13:05:26 +0000 (13:05 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136868 91177308-0d34-0410-b5e6-96231b3b80d8

lib/MC/ELFObjectWriter.cpp

index 78588ae9acaf856d374564714a03c9e946d460c2..18fed21afc66266bdb15e4055a873a397f8202f4 100644 (file)
@@ -462,6 +462,12 @@ void ELFObjectWriter::RecordRelocation(const MCAssembler &Asm,
 
   if (!hasRelocationAddend())
     Addend = 0;
+
+  if (is64Bit())
+    assert(isInt<64>(Addend));
+  else
+    assert(isInt<32>(Addend));
+
   ELFRelocationEntry ERE(RelocOffset, Index, Type, RelocSymbol, Addend);
   Relocations[Fragment->getParent()].push_back(ERE);
 }