OSDN Git Service

Don't crash trying to relax 32 loads on COFF.
authorRafael Espindola <rafael.espindola@gmail.com>
Thu, 7 Jul 2016 14:00:07 +0000 (14:00 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Thu, 7 Jul 2016 14:00:07 +0000 (14:00 +0000)
Fixes pr28452.

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

lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp
test/MC/COFF/relax-reloc.s

index 0e95541..33376b6 100644 (file)
@@ -58,6 +58,7 @@ unsigned X86WinCOFFObjectWriter::getRelocType(const MCValue &Target,
       return COFF::IMAGE_REL_AMD64_REL32;
     case FK_Data_4:
     case X86::reloc_signed_4byte:
+    case X86::reloc_signed_4byte_relax:
       if (Modifier == MCSymbolRefExpr::VK_COFF_IMGREL32)
         return COFF::IMAGE_REL_AMD64_ADDR32NB;
       if (Modifier == MCSymbolRefExpr::VK_SECREL)
index 21590db..38e0f0c 100644 (file)
@@ -2,5 +2,6 @@
 
 // Don't crash trying to create relaxable relocations on COFF.
 
+        movl bar(%eax), %ebx
         add   bar(%rip), %rax
         call *bar(%rip)