diff --git a/tools/versioner/src/Arch.h b/tools/versioner/src/Arch.h
index 7fdd17d..fbf7773 100644
--- a/tools/versioner/src/Arch.h
+++ b/tools/versioner/src/Arch.h
@@ -76,7 +76,7 @@
   }
 
  private:
-  std::array<T, size_t(Arch::x86_64) + 1> data_;
+  std::array<T, size_t(Arch::x86_64) + 1> data_ = {};
 };
 
 template <typename T>
diff --git a/tools/versioner/src/DeclarationDatabase.cpp b/tools/versioner/src/DeclarationDatabase.cpp
index 85ad9ba..8e8d84f 100644
--- a/tools/versioner/src/DeclarationDatabase.cpp
+++ b/tools/versioner/src/DeclarationDatabase.cpp
@@ -196,6 +196,7 @@
     auto declaration_it = symbol_it->second.declarations.find(location);
     if (declaration_it == symbol_it->second.declarations.end()) {
       Declaration declaration;
+      declaration.name = declaration_name;
       declaration.location = location;
       declaration.is_extern = is_extern;
       declaration.is_definition = is_definition;
@@ -335,7 +336,7 @@
     ss << to_string(decl_av.global_availability) << ", ";
   }
 
-  for (auto it : decl_av.arch_availability) {
+  for (const auto& it : decl_av.arch_availability) {
     if (!it.second.empty()) {
       ss << to_string(it.first) << ": " << to_string(it.second) << ", ";
     }
diff --git a/tools/versioner/src/DeclarationDatabase.h b/tools/versioner/src/DeclarationDatabase.h
index ac5de27..bba826d 100644
--- a/tools/versioner/src/DeclarationDatabase.h
+++ b/tools/versioner/src/DeclarationDatabase.h
@@ -92,7 +92,7 @@
       return false;
     }
 
-    for (auto it : arch_availability) {
+    for (const auto& it : arch_availability) {
       if (!it.second.empty()) {
         return false;
       }
@@ -142,6 +142,7 @@
 std::string to_string(const Location& loc);
 
 struct Declaration {
+  std::string name;
   Location location;
 
   bool is_extern;
