summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/MC/ELFObjectWriter.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/lib/MC/ELFObjectWriter.cpp b/lib/MC/ELFObjectWriter.cpp
index 636d449e20..f11ec79210 100644
--- a/lib/MC/ELFObjectWriter.cpp
+++ b/lib/MC/ELFObjectWriter.cpp
@@ -513,7 +513,8 @@ uint64_t ELFObjectWriter::SymbolValue(MCSymbolData &OrigData,
}
}
- if (Data && Data->getFlags() & ELF_Other_ThumbFunc)
+ if ((Data && Data->getFlags() & ELF_Other_ThumbFunc) ||
+ OrigData.getFlags() & ELF_Other_ThumbFunc)
Res |= 1;
if (!Symbol || !Symbol->isInSection())
@@ -644,8 +645,6 @@ void ELFObjectWriter::WriteSymbol(SymbolTableWriter &Writer, ELFSymbolData &MSD,
Other |= Visibility;
uint64_t Value = SymbolValue(OrigData, Layout);
- if (OrigData.getFlags() & ELF_Other_ThumbFunc)
- Value |= 1;
uint64_t Size = 0;
const MCExpr *ESize = OrigData.getSize();