Author: Ebuka Ezike Date: 2026-01-12T21:19:59Z New Revision: a76dbdd2685553e5a219c06f06e40438c9dad9ad
URL: https://github.com/llvm/llvm-project/commit/a76dbdd2685553e5a219c06f06e40438c9dad9ad DIFF: https://github.com/llvm/llvm-project/commit/a76dbdd2685553e5a219c06f06e40438c9dad9ad.diff LOG: [lldb] Change SBSymbol::GetID() to return LLDB_INVALID_SYMBOL_ID for invalid symbols (#175545) 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/uninitialised symbol. From https://github.com/llvm/llvm-project/pull/172687#discussion_r2628319927 Added: Modified: lldb/include/lldb/API/SBSymbol.h lldb/include/lldb/Symbol/Symbol.h lldb/include/lldb/lldb-defines.h lldb/source/API/SBSymbol.cpp Removed: ################################################################################ diff --git a/lldb/include/lldb/API/SBSymbol.h b/lldb/include/lldb/API/SBSymbol.h index 3ec0dab5112f5..d4c4c7011ce34 100644 --- a/lldb/include/lldb/API/SBSymbol.h +++ b/lldb/include/lldb/API/SBSymbol.h @@ -90,7 +90,8 @@ 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_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; 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 diff --git a/lldb/source/API/SBSymbol.cpp b/lldb/source/API/SBSymbol.cpp index fd68a3820181d..bbaf074295b89 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 LLDB_INVALID_SYMBOL_ID; } bool SBSymbol::IsExternal() { _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
