diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2011-02-16 03:25:55 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2011-02-16 03:25:55 +0000 |
commit | 490d02a3349ff7af8827c5c070fce539d3bed034 (patch) | |
tree | b7d3992dcd7cc0cde6f85d528b99b14d20d0d53d /llvm/lib/MC/MCAssembler.cpp | |
parent | 2ec773f7720950dc97081affac9e2c3d12154a88 (diff) | |
download | llvm-490d02a3349ff7af8827c5c070fce539d3bed034.zip llvm-490d02a3349ff7af8827c5c070fce539d3bed034.tar.gz llvm-490d02a3349ff7af8827c5c070fce539d3bed034.tar.bz2 |
Gas is very inconsistent about when a relaxation/relocation is needed. Do
the right thing and stop trying to copy it. Fixes PR8944.
llvm-svn: 125648
Diffstat (limited to 'llvm/lib/MC/MCAssembler.cpp')
-rw-r--r-- | llvm/lib/MC/MCAssembler.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/MC/MCAssembler.cpp b/llvm/lib/MC/MCAssembler.cpp index 587068a..9992646 100644 --- a/llvm/lib/MC/MCAssembler.cpp +++ b/llvm/lib/MC/MCAssembler.cpp @@ -229,8 +229,10 @@ bool MCAssembler::EvaluateFixup(const MCAsmLayout &Layout, } else if (!Target.getSymA()) { IsResolved = false; } else { - const MCSymbol &SA = Target.getSymA()->getSymbol(); - if (SA.AliasedSymbol().isUndefined()) { + const MCSymbolRefExpr *A = Target.getSymA(); + const MCSymbol &SA = A->getSymbol(); + if (A->getKind() != MCSymbolRefExpr::VK_None || + SA.AliasedSymbol().isUndefined()) { IsResolved = false; } else { const MCSymbolData &DataA = getSymbolData(SA); |