ELF_STB_Local is 0 so setting and checking it must be done specially
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113375 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/MC/ELFObjectWriter.cpp b/lib/MC/ELFObjectWriter.cpp
index ed4f972..5713f47 100644
--- a/lib/MC/ELFObjectWriter.cpp
+++ b/lib/MC/ELFObjectWriter.cpp
@@ -439,7 +439,7 @@
assert((Data.getFlags() & ELF_STB_Global) &&
"External symbol requires STB_GLOBAL flag");
WriteSymbol(F, MSD, Layout);
- if (Data.getFlags() & ELF_STB_Local)
+ if ((Data.getFlags() & (0xf << ELF_STB_Shift)) == ELF_STB_Local)
LastLocalSymbolIndex++;
}
@@ -448,7 +448,7 @@
MCSymbolData &Data = *MSD.SymbolData;
Data.setFlags(Data.getFlags() | ELF_STB_Global);
WriteSymbol(F, MSD, Layout);
- if (Data.getFlags() & ELF_STB_Local)
+ if ((Data.getFlags() & (0xf << ELF_STB_Shift)) == ELF_STB_Local)
LastLocalSymbolIndex++;
}
}