summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2016-07-07 14:00:07 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2016-07-07 14:00:07 +0000
commitb34cba97b74d57280b22f99ed0f322c30374dd81 (patch)
tree14a7455ce665f7740fce4ade59dcca199c0c531e
parent17c08dc7013419b792505f0cad9831b59116e1d4 (diff)
downloadbcm5719-llvm-b34cba97b74d57280b22f99ed0f322c30374dd81.tar.gz
bcm5719-llvm-b34cba97b74d57280b22f99ed0f322c30374dd81.zip
Don't crash trying to relax 32 loads on COFF.
Fixes pr28452. llvm-svn: 274754
-rw-r--r--llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp1
-rw-r--r--llvm/test/MC/COFF/relax-reloc.s1
2 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp b/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp
index 0e955416839..33376b6d1b9 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp
@@ -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)
diff --git a/llvm/test/MC/COFF/relax-reloc.s b/llvm/test/MC/COFF/relax-reloc.s
index 21590db4b8d..38e0f0cda57 100644
--- a/llvm/test/MC/COFF/relax-reloc.s
+++ b/llvm/test/MC/COFF/relax-reloc.s
@@ -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)
OpenPOWER on IntegriCloud