From: Rui Ueyama Date: Thu, 17 Nov 2016 03:39:21 +0000 (+0000) Subject: Use uint16_t instead of size_t for symbol version ID. X-Git-Tag: llvmorg-4.0.0-rc1~4331 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=da805c480034ccaaf1af974063be6c40e82308e6;p=platform%2Fupstream%2Fllvm.git Use uint16_t instead of size_t for symbol version ID. Because it is uint16_t in the ELF spec. Using size_t was confusing. llvm-svn: 287198 --- diff --git a/lld/ELF/Config.h b/lld/ELF/Config.h index b6883a4..1f3e10e 100644 --- a/lld/ELF/Config.h +++ b/lld/ELF/Config.h @@ -58,9 +58,9 @@ struct SymbolVersion { // This struct contains symbols version definition that // can be found in version script if it is used for link. struct VersionDefinition { - VersionDefinition(llvm::StringRef Name, size_t Id) : Name(Name), Id(Id) {} + VersionDefinition(llvm::StringRef Name, uint16_t Id) : Name(Name), Id(Id) {} llvm::StringRef Name; - size_t Id; + uint16_t Id; std::vector Globals; size_t NameOff; // Offset in string table. }; diff --git a/lld/ELF/LinkerScript.cpp b/lld/ELF/LinkerScript.cpp index 778165c..f266b44 100644 --- a/lld/ELF/LinkerScript.cpp +++ b/lld/ELF/LinkerScript.cpp @@ -1802,7 +1802,7 @@ unsigned ScriptParser::readPhdrType() { void ScriptParser::readVersionDeclaration(StringRef VerStr) { // Identifiers start at 2 because 0 and 1 are reserved // for VER_NDX_LOCAL and VER_NDX_GLOBAL constants. - size_t VersionId = Config->VersionDefinitions.size() + 2; + uint16_t VersionId = Config->VersionDefinitions.size() + 2; Config->VersionDefinitions.push_back({VerStr, VersionId}); if (consume("global:") || peek() != "local:") diff --git a/lld/ELF/SymbolTable.cpp b/lld/ELF/SymbolTable.cpp index 4cd1db7..b97fbbc 100644 --- a/lld/ELF/SymbolTable.cpp +++ b/lld/ELF/SymbolTable.cpp @@ -648,7 +648,7 @@ template void SymbolTable::handleAnonymousVersion() { // Set symbol versions to symbols. This function handles patterns // containing no wildcard characters. template -void SymbolTable::assignExactVersion(SymbolVersion Ver, size_t VersionId, +void SymbolTable::assignExactVersion(SymbolVersion Ver, uint16_t VersionId, StringRef VersionName) { if (Ver.HasWildcards) return; @@ -677,7 +677,7 @@ void SymbolTable::assignExactVersion(SymbolVersion Ver, size_t VersionId, template void SymbolTable::assignWildcardVersion(SymbolVersion Ver, - size_t VersionId) { + uint16_t VersionId) { if (!Ver.HasWildcards) return; StringMatcher M({Ver.Name}); diff --git a/lld/ELF/SymbolTable.h b/lld/ELF/SymbolTable.h index 995fde1..170e184f 100644 --- a/lld/ELF/SymbolTable.h +++ b/lld/ELF/SymbolTable.h @@ -103,9 +103,9 @@ private: void initDemangledSyms(); void handleAnonymousVersion(); - void assignExactVersion(SymbolVersion Ver, size_t VersionId, + void assignExactVersion(SymbolVersion Ver, uint16_t VersionId, StringRef VersionName); - void assignWildcardVersion(SymbolVersion Ver, size_t VersionId); + void assignWildcardVersion(SymbolVersion Ver, uint16_t VersionId); struct SymIndex { SymIndex(int Idx, bool Traced) : Idx(Idx), Traced(Traced) {}