diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2011-08-12 01:51:29 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2011-08-12 01:51:29 +0000 |
commit | 0d46ccfc5c2f5d0894e340907f6e58067cce5b03 (patch) | |
tree | b1bf201e0d02b5e37328cb6a376ed9be61806177 /lib/MC/MachObjectWriter.cpp | |
parent | b43b09eef54ebb99079c6541f1b14ae1a2ef7017 (diff) |
MachOWriter: Don't crash on fixups with arithmetic, emit a relocation instead. This matches what as does.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137414 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC/MachObjectWriter.cpp')
-rw-r--r-- | lib/MC/MachObjectWriter.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/MC/MachObjectWriter.cpp b/lib/MC/MachObjectWriter.cpp index 6f64bdf40b..7011916770 100644 --- a/lib/MC/MachObjectWriter.cpp +++ b/lib/MC/MachObjectWriter.cpp @@ -595,9 +595,13 @@ IsSymbolRefDifferenceFullyResolvedImpl(const MCAssembler &Asm, return false; } - const MCFragment &FA = *Asm.getSymbolData(SA).getFragment(); + const MCFragment *FA = Asm.getSymbolData(SA).getFragment(); - A_Base = FA.getAtom(); + // Bail if the symbol has no fragment. + if (!FA) + return false; + + A_Base = FA->getAtom(); if (!A_Base) return false; |