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 | 91ea511436232c3b240d5f0a67a4639d7149dfdc (patch) | |
tree | 49c14adfde93f1ee09611a136d472d7529d7b527 /llvm/lib/MC/MachObjectWriter.cpp | |
parent | 69c158f5879007304a7bb69de7edbb6f36ebf8a7 (diff) | |
download | bcm5719-llvm-91ea511436232c3b240d5f0a67a4639d7149dfdc.tar.gz bcm5719-llvm-91ea511436232c3b240d5f0a67a4639d7149dfdc.zip |
MachOWriter: Don't crash on fixups with arithmetic, emit a relocation instead. This matches what as does.
llvm-svn: 137414
Diffstat (limited to 'llvm/lib/MC/MachObjectWriter.cpp')
-rw-r--r-- | llvm/lib/MC/MachObjectWriter.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/llvm/lib/MC/MachObjectWriter.cpp b/llvm/lib/MC/MachObjectWriter.cpp index 6f64bdf40be..7011916770f 100644 --- a/llvm/lib/MC/MachObjectWriter.cpp +++ b/llvm/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; |