https://github.com/da-viper updated 
https://github.com/llvm/llvm-project/pull/175545

>From aeb644259040d96e18a43afe2e59f697182672d6 Mon Sep 17 00:00:00 2001
From: Ebuka Ezike <[email protected]>
Date: Mon, 12 Jan 2026 14:13:59 +0000
Subject: [PATCH 1/3] [lldb] Change SBSymbol::GetID() to return UINT32_MAX for
 invalid symbols

Return UINT32_MAX instead of 0 when SBSymbol has no underlying symbol,
since 0 is a valid symbol ID. This makes it possible to distinguish
between a valid symbol with ID 0 and an invalid/uninitialized symbol.

>From https://github.com/llvm/llvm-project/pull/172687#discussion_r2628319927
---
 lldb/source/API/SBSymbol.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lldb/source/API/SBSymbol.cpp b/lldb/source/API/SBSymbol.cpp
index fd68a3820181d..73f082ebde6a3 100644
--- a/lldb/source/API/SBSymbol.cpp
+++ b/lldb/source/API/SBSymbol.cpp
@@ -207,7 +207,7 @@ uint32_t SBSymbol::GetID() const {
 
   if (m_opaque_ptr)
     return m_opaque_ptr->GetID();
-  return 0;
+  return UINT32_MAX;
 }
 
 bool SBSymbol::IsExternal() {

>From e69407672c5d07714c34a93261386bdad7b5500e Mon Sep 17 00:00:00 2001
From: Ebuka Ezike <[email protected]>
Date: Mon, 12 Jan 2026 17:57:39 +0000
Subject: [PATCH 2/3] add review changes.

---
 lldb/include/lldb/API/SBSymbol.h  | 4 +++-
 lldb/include/lldb/Symbol/Symbol.h | 4 ++--
 lldb/include/lldb/lldb-defines.h  | 1 +
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/lldb/include/lldb/API/SBSymbol.h b/lldb/include/lldb/API/SBSymbol.h
index 3ec0dab5112f5..b913b8ef5771f 100644
--- a/lldb/include/lldb/API/SBSymbol.h
+++ b/lldb/include/lldb/API/SBSymbol.h
@@ -90,7 +90,9 @@ class LLDB_API SBSymbol {
   /// Get the ID of this symbol, usually the original symbol table index.
   ///
   /// \returns
-  ///   Returns the ID of this symbol.
+  ///     LLDB_INVALID_PROCESS_ID if this object does not
+  ///     contain a valid symbol object.
+  ///     Otherwise, Returns a valid symbol ID.
   uint32_t GetID() const;
 
   bool operator==(const lldb::SBSymbol &rhs) const;
diff --git a/lldb/include/lldb/Symbol/Symbol.h 
b/lldb/include/lldb/Symbol/Symbol.h
index b994c34e46493..1f9d222b6ab29 100644
--- a/lldb/include/lldb/Symbol/Symbol.h
+++ b/lldb/include/lldb/Symbol/Symbol.h
@@ -318,8 +318,8 @@ class Symbol : public SymbolContextScope {
 
   void SynthesizeNameIfNeeded() const;
 
-  uint32_t m_uid =
-      UINT32_MAX;           // User ID (usually the original symbol table 
index)
+  uint32_t m_uid = LLDB_INVALID_SYMBOL_ID; // User ID (usually the original
+                                           // symbol table index)
   uint16_t m_type_data = 0; // data specific to m_type
   uint16_t m_type_data_resolved : 1, // True if the data in m_type_data has
                                      // already been calculated
diff --git a/lldb/include/lldb/lldb-defines.h b/lldb/include/lldb/lldb-defines.h
index c54ef884b01dc..52bf7c5cce947 100644
--- a/lldb/include/lldb/lldb-defines.h
+++ b/lldb/include/lldb/lldb-defines.h
@@ -90,6 +90,7 @@
 #define LLDB_INVALID_THREAD_ID 0
 #define LLDB_INVALID_FRAME_ID UINT32_MAX
 #define LLDB_INVALID_SIGNAL_NUMBER INT32_MAX
+#define LLDB_INVALID_SYMBOL_ID UINT32_MAX
 #define LLDB_INVALID_OFFSET UINT64_MAX // Must match max of lldb::offset_t
 #define LLDB_INVALID_LINE_NUMBER UINT32_MAX
 #define LLDB_INVALID_COLUMN_NUMBER 0

>From a7135767226c7dc557475290699d3a6528553e24 Mon Sep 17 00:00:00 2001
From: Ebuka Ezike <[email protected]>
Date: Mon, 12 Jan 2026 17:58:11 +0000
Subject: [PATCH 3/3] add review changes

---
 lldb/include/lldb/API/SBSymbol.h | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/lldb/include/lldb/API/SBSymbol.h b/lldb/include/lldb/API/SBSymbol.h
index b913b8ef5771f..d4c4c7011ce34 100644
--- a/lldb/include/lldb/API/SBSymbol.h
+++ b/lldb/include/lldb/API/SBSymbol.h
@@ -90,9 +90,8 @@ class LLDB_API SBSymbol {
   /// Get the ID of this symbol, usually the original symbol table index.
   ///
   /// \returns
-  ///     LLDB_INVALID_PROCESS_ID if this object does not
-  ///     contain a valid symbol object.
-  ///     Otherwise, Returns a valid symbol ID.
+  ///     LLDB_INVALID_SYMBOL_ID if this object does not contain a valid symbol
+  ///     object. Otherwise, Returns a valid symbol ID.
   uint32_t GetID() const;
 
   bool operator==(const lldb::SBSymbol &rhs) const;

_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to