Skip to content

[lldb][Language] Change GetFunctionDisplayName to take SymbolContext by reference #135536

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Apr 13, 2025

Conversation

Michael137
Copy link
Member

Both the CPlusPlusLanguage plugins and the Swift language plugin already assume the sc != nullptr. And all FormatEntity callsites of GetFunctionDisplayName already check for nullptr before passing sc. This patch makes this pre-condition explicit by changing the parameter to const SymbolContext &. This will help with some upcoming changes in this area.

@llvmbot
Copy link
Member

llvmbot commented Apr 13, 2025

@llvm/pr-subscribers-lldb

Author: Michael Buch (Michael137)

Changes

Both the CPlusPlusLanguage plugins and the Swift language plugin already assume the sc != nullptr. And all FormatEntity callsites of GetFunctionDisplayName already check for nullptr before passing sc. This patch makes this pre-condition explicit by changing the parameter to const SymbolContext &. This will help with some upcoming changes in this area.


Full diff: https://github.com/llvm/llvm-project/pull/135536.diff

3 Files Affected:

  • (modified) lldb/include/lldb/Target/Language.h (+1-1)
  • (modified) lldb/source/Core/FormatEntity.cpp (+4-3)
  • (modified) lldb/source/Target/Language.cpp (+1-1)
diff --git a/lldb/include/lldb/Target/Language.h b/lldb/include/lldb/Target/Language.h
index b699a90aff8e4..da2c2cc451dae 100644
--- a/lldb/include/lldb/Target/Language.h
+++ b/lldb/include/lldb/Target/Language.h
@@ -268,7 +268,7 @@ class Language : public PluginInterface {
   // the reference has never been assigned
   virtual bool IsUninitializedReference(ValueObject &valobj);
 
-  virtual bool GetFunctionDisplayName(const SymbolContext *sc,
+  virtual bool GetFunctionDisplayName(const SymbolContext &sc,
                                       const ExecutionContext *exe_ctx,
                                       FunctionNameRepresentation representation,
                                       Stream &s);
diff --git a/lldb/source/Core/FormatEntity.cpp b/lldb/source/Core/FormatEntity.cpp
index a9370595c11e7..7130248100c6f 100644
--- a/lldb/source/Core/FormatEntity.cpp
+++ b/lldb/source/Core/FormatEntity.cpp
@@ -1719,7 +1719,7 @@ bool FormatEntity::Format(const Entry &entry, Stream &s,
 
     if (language_plugin)
       language_plugin_handled = language_plugin->GetFunctionDisplayName(
-          sc, exe_ctx, Language::FunctionNameRepresentation::eName, ss);
+          *sc, exe_ctx, Language::FunctionNameRepresentation::eName, ss);
 
     if (language_plugin_handled) {
       s << ss.GetString();
@@ -1754,7 +1754,7 @@ bool FormatEntity::Format(const Entry &entry, Stream &s,
 
     if (language_plugin)
       language_plugin_handled = language_plugin->GetFunctionDisplayName(
-          sc, exe_ctx, Language::FunctionNameRepresentation::eNameWithNoArgs,
+          *sc, exe_ctx, Language::FunctionNameRepresentation::eNameWithNoArgs,
           ss);
 
     if (language_plugin_handled) {
@@ -1789,7 +1789,8 @@ bool FormatEntity::Format(const Entry &entry, Stream &s,
 
     if (language_plugin)
       language_plugin_handled = language_plugin->GetFunctionDisplayName(
-          sc, exe_ctx, Language::FunctionNameRepresentation::eNameWithArgs, ss);
+          *sc, exe_ctx, Language::FunctionNameRepresentation::eNameWithArgs,
+          ss);
 
     if (language_plugin_handled) {
       s << ss.GetString();
diff --git a/lldb/source/Target/Language.cpp b/lldb/source/Target/Language.cpp
index a75894ffa4b3b..86754c251cd93 100644
--- a/lldb/source/Target/Language.cpp
+++ b/lldb/source/Target/Language.cpp
@@ -510,7 +510,7 @@ bool Language::IsNilReference(ValueObject &valobj) { return false; }
 
 bool Language::IsUninitializedReference(ValueObject &valobj) { return false; }
 
-bool Language::GetFunctionDisplayName(const SymbolContext *sc,
+bool Language::GetFunctionDisplayName(const SymbolContext &sc,
                                       const ExecutionContext *exe_ctx,
                                       FunctionNameRepresentation representation,
                                       Stream &s) {

@Michael137 Michael137 force-pushed the lldb/function-display-name-param branch from bad7ab1 to e156553 Compare April 13, 2025 10:15
@Michael137 Michael137 merged commit 52e45a7 into llvm:main Apr 13, 2025
9 of 10 checks passed
@Michael137 Michael137 deleted the lldb/function-display-name-param branch April 13, 2025 22:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants