diff --git a/lld/lib/ReaderWriter/ELF/Mips/MipsDynamicTable.h b/lld/lib/ReaderWriter/ELF/Mips/MipsDynamicTable.h index f61862288c09..db4f631d54cc 100644 --- a/lld/lib/ReaderWriter/ELF/Mips/MipsDynamicTable.h +++ b/lld/lib/ReaderWriter/ELF/Mips/MipsDynamicTable.h @@ -97,7 +97,7 @@ protected: if (const auto *da = dyn_cast(al->_atom)) if (da->codeModel() == DefinedAtom::codeMipsMicro || da->codeModel() == DefinedAtom::codeMipsMicroPIC) - return al->_virtualAddr + 1; + return al->_virtualAddr | 1; return al->_virtualAddr; } diff --git a/lld/lib/ReaderWriter/ELF/Mips/MipsExecutableWriter.h b/lld/lib/ReaderWriter/ELF/Mips/MipsExecutableWriter.h index 01aed1c6a709..0df271073250 100644 --- a/lld/lib/ReaderWriter/ELF/Mips/MipsExecutableWriter.h +++ b/lld/lib/ReaderWriter/ELF/Mips/MipsExecutableWriter.h @@ -66,7 +66,7 @@ std::error_code MipsExecutableWriter::setELFHeader() { if (ea->codeModel() == DefinedAtom::codeMipsMicro || ea->codeModel() == DefinedAtom::codeMipsMicroPIC) // Adjust entry symbol value if this symbol is microMIPS encoded. - this->_elfHeader->e_entry(al->_virtualAddr + 1); + this->_elfHeader->e_entry(al->_virtualAddr | 1); } _writeHelper.setELFHeader(*this->_elfHeader);