Fix narrowing conversion error in 32-bit MSVC builds
Use size_t instead of ELFT::uint for the string table offset. If the
linker is built 32-bit, it can't write an output file larger than 2GB.
Other code in this area uses size_t as well.
llvm-svn: 284680
diff --git a/lld/ELF/OutputSections.cpp b/lld/ELF/OutputSections.cpp
index 06c9de8..90561bc 100644
--- a/lld/ELF/OutputSections.cpp
+++ b/lld/ELF/OutputSections.cpp
@@ -633,7 +633,7 @@
return;
for (auto I = Mid, E = V.end(); I != E; ++I) {
SymbolBody *B = I->Symbol;
- typename ELFT::uint StrOff = I->StrTabOffset;
+ size_t StrOff = I->StrTabOffset;
Symbols.push_back({B, StrOff, hashGnu(B->getName())});
}
diff --git a/lld/ELF/OutputSections.h b/lld/ELF/OutputSections.h
index f73c418..f5a5270 100644
--- a/lld/ELF/OutputSections.h
+++ b/lld/ELF/OutputSections.h
@@ -266,7 +266,7 @@
struct SymbolTableEntry {
SymbolBody *Symbol;
- std::size_t StrTabOffset;
+ size_t StrTabOffset;
};
template <class ELFT>