versioner: assorted fixes.
Zero initialize the contents of ArchMap, keep track of the symbol name
in Declaration, remove unnecessary copies in loops.
Change-Id: I47b07755846f252b83ffc4c89547a34b2f7ab868
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;