| Index: src/IceELFSection.h
|
| diff --git a/src/IceELFSection.h b/src/IceELFSection.h
|
| index 28fb6b01aa220aed815561d0ee6bf0c410d35549..c57b8218d4a9ac0c72f7e936afa64bdf936dc901 100644
|
| --- a/src/IceELFSection.h
|
| +++ b/src/IceELFSection.h
|
| @@ -232,7 +232,8 @@ public:
|
|
|
| /// Track additional relocations which start out relative to offset 0, but
|
| /// should be adjusted to be relative to BaseOff.
|
| - void addRelocations(RelocOffsetT BaseOff, const FixupRefList &FixupRefs);
|
| + void addRelocations(RelocOffsetT BaseOff, const FixupRefList &FixupRefs,
|
| + ELFSymbolTableSection *SymTab);
|
|
|
| /// Track a single additional relocation.
|
| void addRelocation(const AssemblerFixup &Fixup) { Fixups.push_back(Fixup); }
|
| @@ -353,9 +354,10 @@ void ELFRelocationSection::writeData(ELFStreamer &Str,
|
| const ELFSym *Symbol;
|
| if (Fixup.isNullSymbol()) {
|
| Symbol = SymTab->getNullSymbol();
|
| + } else if (Fixup.valueIsSymbol()) {
|
| + Symbol = Fixup.getSymbolValue();
|
| } else {
|
| - constexpr Assembler *Asm = nullptr;
|
| - const IceString Name = Fixup.symbol(Asm);
|
| + const IceString Name = Fixup.symbol();
|
| Symbol = SymTab->findSymbol(Name);
|
| if (!Symbol)
|
| llvm::report_fatal_error(Name + ": Missing symbol mentioned in reloc");
|
|
|