Merge branch 'upstream-main' into 'main' am: 94e167b828 am: f8680dd7e4

Original change: https://android-review.googlesource.com/c/platform/external/stg/+/3208456

Change-Id: I436ca4b3e65ae119712a5c9c83030eb6880b3366
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/elf_reader.cc b/elf_reader.cc
index 603d05e..b3def7f 100644
--- a/elf_reader.cc
+++ b/elf_reader.cc
@@ -60,6 +60,8 @@
 ElfSymbol::SymbolType ConvertSymbolType(
     SymbolTableEntry::SymbolType symbol_type) {
   switch (symbol_type) {
+    case SymbolTableEntry::SymbolType::NOTYPE:
+      return ElfSymbol::SymbolType::NOTYPE;
     case SymbolTableEntry::SymbolType::OBJECT:
       return ElfSymbol::SymbolType::OBJECT;
     case SymbolTableEntry::SymbolType::FUNCTION:
diff --git a/graph.cc b/graph.cc
index ea343b4..6c5ca05 100644
--- a/graph.cc
+++ b/graph.cc
@@ -82,6 +82,8 @@
 
 std::ostream& operator<<(std::ostream& os, ElfSymbol::SymbolType type) {
   switch (type) {
+    case ElfSymbol::SymbolType::NOTYPE:
+      return os << "no-type";
     case ElfSymbol::SymbolType::OBJECT:
       return os << "variable";
     case ElfSymbol::SymbolType::FUNCTION:
diff --git a/graph.h b/graph.h
index 55691d4..3a31540 100644
--- a/graph.h
+++ b/graph.h
@@ -266,7 +266,7 @@
 };
 
 struct ElfSymbol {
-  enum class SymbolType { OBJECT, FUNCTION, COMMON, TLS, GNU_IFUNC };
+  enum class SymbolType { NOTYPE, OBJECT, FUNCTION, COMMON, TLS, GNU_IFUNC };
   enum class Binding { GLOBAL, LOCAL, WEAK, GNU_UNIQUE };
   enum class Visibility { DEFAULT, PROTECTED, HIDDEN, INTERNAL };
   struct VersionInfo {
diff --git a/proto_reader.cc b/proto_reader.cc
index 9db3bb1..f046458 100644
--- a/proto_reader.cc
+++ b/proto_reader.cc
@@ -385,6 +385,8 @@
 
 stg::ElfSymbol::SymbolType Transformer::Transform(ElfSymbol::SymbolType x) {
   switch (x) {
+    case ElfSymbol::NOTYPE:
+      return stg::ElfSymbol::SymbolType::NOTYPE;
     case ElfSymbol::OBJECT:
       return stg::ElfSymbol::SymbolType::OBJECT;
     case ElfSymbol::FUNCTION:
diff --git a/proto_writer.cc b/proto_writer.cc
index 8898180..915981f 100644
--- a/proto_writer.cc
+++ b/proto_writer.cc
@@ -415,6 +415,8 @@
 ElfSymbol::SymbolType Transform<MapId>::operator()(
     stg::ElfSymbol::SymbolType x) {
   switch (x) {
+    case stg::ElfSymbol::SymbolType::NOTYPE:
+      return ElfSymbol::NOTYPE;
     case stg::ElfSymbol::SymbolType::OBJECT:
       return ElfSymbol::OBJECT;
     case stg::ElfSymbol::SymbolType::FUNCTION:
diff --git a/stg.proto b/stg.proto
index 5ba2d6c..ed6c86a 100644
--- a/stg.proto
+++ b/stg.proto
@@ -223,11 +223,12 @@
 
   enum SymbolType {
     SYMBOL_TYPE_UNSPECIFIED = 0;
-    OBJECT = 1;
-    FUNCTION = 2;
-    COMMON = 3;
-    TLS = 4;
-    GNU_IFUNC = 5;
+    NOTYPE = 1;
+    OBJECT = 2;
+    FUNCTION = 3;
+    COMMON = 4;
+    TLS = 5;
+    GNU_IFUNC = 6;
   }
 
   enum Binding {