diff options
Diffstat (limited to 'lld/ELF/OutputSections.cpp')
| -rw-r--r-- | lld/ELF/OutputSections.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/lld/ELF/OutputSections.cpp b/lld/ELF/OutputSections.cpp index 1bc6e6bd99d..6caf99069b4 100644 --- a/lld/ELF/OutputSections.cpp +++ b/lld/ELF/OutputSections.cpp @@ -51,11 +51,12 @@ GotSection<ELFT>::getEntryAddr(const SymbolBody &B) const { template <class ELFT> void GotSection<ELFT>::writeTo(uint8_t *Buf) { for (const SymbolBody *B : Entries) { + uint8_t *Entry = Buf; + Buf += sizeof(uintX_t); if (canBePreempted(B)) continue; // The dynamic linker will take care of it. uintX_t VA = getSymVA(*B, BssSec); - write<uintX_t, ELFT::TargetEndianness, sizeof(uintX_t)>(Buf, VA); - Buf += sizeof(uintX_t); + write<uintX_t, ELFT::TargetEndianness, sizeof(uintX_t)>(Entry, VA); } } |

