Use uint16_t instead of size_t for symbol version ID.
authorRui Ueyama <ruiu@google.com>
Thu, 17 Nov 2016 03:39:21 +0000 (03:39 +0000)
committerRui Ueyama <ruiu@google.com>
Thu, 17 Nov 2016 03:39:21 +0000 (03:39 +0000)
Because it is uint16_t in the ELF spec. Using size_t was confusing.

llvm-svn: 287198

lld/ELF/Config.h
lld/ELF/LinkerScript.cpp
lld/ELF/SymbolTable.cpp
lld/ELF/SymbolTable.h

index b6883a4..1f3e10e 100644 (file)
@@ -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<SymbolVersion> Globals;
   size_t NameOff; // Offset in string table.
 };
index 778165c..f266b44 100644 (file)
@@ -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:")
index 4cd1db7..b97fbbc 100644 (file)
@@ -648,7 +648,7 @@ template <class ELFT> void SymbolTable<ELFT>::handleAnonymousVersion() {
 // Set symbol versions to symbols. This function handles patterns
 // containing no wildcard characters.
 template <class ELFT>
-void SymbolTable<ELFT>::assignExactVersion(SymbolVersion Ver, size_t VersionId,
+void SymbolTable<ELFT>::assignExactVersion(SymbolVersion Ver, uint16_t VersionId,
                                            StringRef VersionName) {
   if (Ver.HasWildcards)
     return;
@@ -677,7 +677,7 @@ void SymbolTable<ELFT>::assignExactVersion(SymbolVersion Ver, size_t VersionId,
 
 template <class ELFT>
 void SymbolTable<ELFT>::assignWildcardVersion(SymbolVersion Ver,
-                                              size_t VersionId) {
+                                              uint16_t VersionId) {
   if (!Ver.HasWildcards)
     return;
   StringMatcher M({Ver.Name});
index 995fde1..170e184 100644 (file)
@@ -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) {}