[Lldb-commits] [lldb] [lldb] Bring more diagnostics in compliance with our coding standards (PR #190410)

via lldb-commits lldb-commits at lists.llvm.org
Fri Apr 3 15:01:15 PDT 2026


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-lldb

Author: Jonas Devlieghere (JDevlieghere)

<details>
<summary>Changes</summary>

The LLVM Coding Standards [1] specify that:

> [T]o match error message styles commonly produced by other tools,
> start the first sentence with a lowercase letter, and finish the last
> sentence without a period, if it would end in one otherwise.

Historically, that hasn't been something we've enforced in LLDB, but in the past year or so I've started to pay more attention to this in code reviews. This PR brings more error messages in compliance, further increasing consistency.

I also adopted `createStringErrorV` where it improved the code as a drive-by for lines I was already touching.

[1] https://llvm.org/docs/CodingStandards.html#error-and-warning-messages

Assisted-by: Claude Code

---

Patch is 76.43 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/190410.diff


62 Files Affected:

- (modified) lldb/source/DataFormatters/TypeSynthetic.cpp (+5-4) 
- (modified) lldb/source/Expression/Expression.cpp (+1-1) 
- (modified) lldb/source/Expression/IRExecutionUnit.cpp (+1-1) 
- (modified) lldb/source/Host/common/Socket.cpp (+2-2) 
- (modified) lldb/source/Host/common/TCPSocket.cpp (+1-1) 
- (modified) lldb/source/Host/macosx/objcxx/Host.mm (+1-1) 
- (modified) lldb/source/Host/posix/DomainSocket.cpp (+1-1) 
- (modified) lldb/source/Host/posix/PipePosix.cpp (+1-1) 
- (modified) lldb/source/Interpreter/Options.cpp (+2-2) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp (+3-2) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp (+26-26) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp (+3-2) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/GenericInitializerList.cpp (+5-4) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/GenericList.cpp (+2-2) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp (+3-2) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp (+9-9) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/LibCxxAtomic.cpp (+3-2) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp (+5-3) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/LibCxxProxyArray.cpp (+5-4) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp (+3-2) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/LibCxxSliceArray.cpp (+5-4) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/LibCxxSpan.cpp (+5-4) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp (+4-3) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/LibCxxValarray.cpp (+5-4) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp (+11-10) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp (+8-6) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/LibStdcppUniquePointer.cpp (+3-2) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/MsvcStlAtomic.cpp (+3-2) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/MsvcStlDeque.cpp (+6-5) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/MsvcStlSmartPointer.cpp (+5-4) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/MsvcStlSpan.cpp (+5-4) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/MsvcStlTree.cpp (+2-2) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/MsvcStlUnordered.cpp (+2-2) 
- (modified) lldb/source/Plugins/Language/CPlusPlus/MsvcStlVector.cpp (+11-10) 
- (modified) lldb/source/Plugins/Language/ObjC/Cocoa.cpp (+3-2) 
- (modified) lldb/source/Plugins/Language/ObjC/NSDictionary.cpp (+4-2) 
- (modified) lldb/source/Plugins/Language/ObjC/NSError.cpp (+5-7) 
- (modified) lldb/source/Plugins/Language/ObjC/NSException.cpp (+4-2) 
- (modified) lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp (+2-2) 
- (modified) lldb/source/Plugins/Process/AIX/NativeProcessAIX.cpp (+1-1) 
- (modified) lldb/source/Plugins/Process/FreeBSD/NativeProcessFreeBSD.cpp (+3-3) 
- (modified) lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp (+2-2) 
- (modified) lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp (+3-3) 
- (modified) lldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp (+2-2) 
- (modified) lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp (+1-1) 
- (modified) lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp (+4-4) 
- (modified) lldb/source/Plugins/ScriptInterpreter/Python/Interfaces/ScriptedPythonInterface.h (+2-2) 
- (modified) lldb/source/Plugins/ScriptInterpreter/Python/ScriptInterpreterPython.cpp (+9-4) 
- (modified) lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp (+2-2) 
- (modified) lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp (+2-2) 
- (modified) lldb/source/Symbol/CompilerType.cpp (+3-4) 
- (modified) lldb/source/Symbol/SymbolContext.cpp (+1-1) 
- (modified) lldb/source/Target/Process.cpp (+1-1) 
- (modified) lldb/source/Target/Target.cpp (+2-2) 
- (modified) lldb/source/Target/Thread.cpp (+1-1) 
- (modified) lldb/source/ValueObject/ValueObject.cpp (+1-1) 
- (modified) lldb/source/ValueObject/ValueObjectRegister.cpp (+2-2) 
- (modified) lldb/source/ValueObject/ValueObjectSynthetic.cpp (+7-6) 
- (modified) lldb/test/Shell/SymbolFile/DWARF/x86/class-type-nullptr-deref.s (+1-1) 
- (modified) lldb/test/Shell/SymbolFile/DWARF/x86/debug-types-signature-loop.s (+5-5) 
- (modified) lldb/test/Shell/Target/target-label.test (+1-1) 
- (modified) lldb/unittests/Expression/ExpressionTest.cpp (+7-7) 


``````````diff
diff --git a/lldb/source/DataFormatters/TypeSynthetic.cpp b/lldb/source/DataFormatters/TypeSynthetic.cpp
index e25296e91fa25..53fe150954c7d 100644
--- a/lldb/source/DataFormatters/TypeSynthetic.cpp
+++ b/lldb/source/DataFormatters/TypeSynthetic.cpp
@@ -21,6 +21,7 @@
 #include "lldb/Target/Target.h"
 #include "lldb/Utility/StreamString.h"
 #include "llvm/Support/Error.h"
+#include "llvm/Support/ErrorExtras.h"
 #include <cstdint>
 
 using namespace lldb;
@@ -70,8 +71,8 @@ TypeFilterImpl::FrontEnd::GetIndexOfChildWithName(ConstString name) {
       }
     }
   }
-  return llvm::createStringError("Type has no child named '%s'",
-                                 name.AsCString());
+  return llvm::createStringErrorV("type has no child named '{0}'",
+                                  name.GetStringRef());
 }
 
 std::string TypeFilterImpl::GetDescription() {
@@ -225,8 +226,8 @@ bool ScriptedSyntheticChildren::FrontEnd::MightHaveChildren() {
 llvm::Expected<size_t>
 ScriptedSyntheticChildren::FrontEnd::GetIndexOfChildWithName(ConstString name) {
   if (!m_wrapper_sp || m_interpreter == nullptr)
-    return llvm::createStringError("Type has no child named '%s'",
-                                   name.AsCString());
+    return llvm::createStringErrorV("type has no child named '{0}'",
+                                    name.GetStringRef());
   return m_interpreter->GetIndexOfChildWithName(m_wrapper_sp,
                                                 name.GetCString());
 }
diff --git a/lldb/source/Expression/Expression.cpp b/lldb/source/Expression/Expression.cpp
index cca645e5f264f..f31aba945d150 100644
--- a/lldb/source/Expression/Expression.cpp
+++ b/lldb/source/Expression/Expression.cpp
@@ -39,7 +39,7 @@ lldb_private::FunctionCallLabel::fromString(llvm::StringRef label) {
   label.split(components, ":", /*MaxSplit=*/4);
 
   if (components.size() != 5)
-    return llvm::createStringError("malformed function call label.");
+    return llvm::createStringError("malformed function call label");
 
   if (components[0] != FunctionCallLabelPrefix)
     return llvm::createStringErrorV(
diff --git a/lldb/source/Expression/IRExecutionUnit.cpp b/lldb/source/Expression/IRExecutionUnit.cpp
index 60b9de0d21b2e..06f4d7b9fb5dd 100644
--- a/lldb/source/Expression/IRExecutionUnit.cpp
+++ b/lldb/source/Expression/IRExecutionUnit.cpp
@@ -729,7 +729,7 @@ ResolveFunctionCallLabel(FunctionCallLabel &label,
   symbol_was_missing_weak = false;
 
   if (!sc.target_sp)
-    return llvm::createStringError("target not available.");
+    return llvm::createStringError("target not available");
 
   auto module_sp = sc.target_sp->GetImages().FindModule(label.module_id);
   if (!module_sp)
diff --git a/lldb/source/Host/common/Socket.cpp b/lldb/source/Host/common/Socket.cpp
index 48191b4d1ca81..041dfbda0c21d 100644
--- a/lldb/source/Host/common/Socket.cpp
+++ b/lldb/source/Host/common/Socket.cpp
@@ -181,7 +181,7 @@ llvm::Error Socket::Initialize() {
   if (err == 0) {
     if (wsaData.wVersion < wVersion) {
       WSACleanup();
-      return llvm::createStringError("WSASock version is not expected.");
+      return llvm::createStringError("WSASock version is not expected");
     }
   } else {
     return llvm::errorCodeToError(llvm::mapWindowsError(::WSAGetLastError()));
@@ -247,7 +247,7 @@ Socket::CreatePair(std::optional<SocketProtocol> protocol) {
     return DomainSocket::CreatePair();
 #endif
   default:
-    return llvm::createStringError("Unsupported protocol");
+    return llvm::createStringError("unsupported protocol");
   }
 }
 
diff --git a/lldb/source/Host/common/TCPSocket.cpp b/lldb/source/Host/common/TCPSocket.cpp
index c144f3c501d7f..18a2d66e30bf4 100644
--- a/lldb/source/Host/common/TCPSocket.cpp
+++ b/lldb/source/Host/common/TCPSocket.cpp
@@ -267,7 +267,7 @@ llvm::Expected<std::vector<MainLoopBase::ReadHandleUP>>
 TCPSocket::Accept(MainLoopBase &loop,
                   std::function<void(std::unique_ptr<Socket> socket)> sock_cb) {
   if (m_listen_sockets.size() == 0)
-    return llvm::createStringError("No open listening sockets!");
+    return llvm::createStringError("no open listening sockets!");
 
   std::vector<MainLoopBase::ReadHandleUP> handles;
   for (auto socket : m_listen_sockets) {
diff --git a/lldb/source/Host/macosx/objcxx/Host.mm b/lldb/source/Host/macosx/objcxx/Host.mm
index 1aa6b5376b6b1..2b18c0d50e80b 100644
--- a/lldb/source/Host/macosx/objcxx/Host.mm
+++ b/lldb/source/Host/macosx/objcxx/Host.mm
@@ -458,7 +458,7 @@ repeat with the_window in (get windows)\n\
       std::error_code(ENOTSUP, std::system_category()));
 #else  // !TARGET_OS_OSX
   if (url.empty())
-    return llvm::createStringError("Cannot open empty URL.");
+    return llvm::createStringError("cannot open empty URL");
 
   LLDB_LOG(GetLog(LLDBLog::Host), "Opening URL: {0}", url);
 
diff --git a/lldb/source/Host/posix/DomainSocket.cpp b/lldb/source/Host/posix/DomainSocket.cpp
index 6a730324a1ea3..c0f6ffe626e9e 100644
--- a/lldb/source/Host/posix/DomainSocket.cpp
+++ b/lldb/source/Host/posix/DomainSocket.cpp
@@ -227,7 +227,7 @@ DomainSocket::FromBoundNativeSocket(NativeSocket sockfd, bool should_close) {
   if (getsockname(sockfd, (struct sockaddr *)&addr, &addr_len) == -1)
     return llvm::createStringError("not a socket or error occurred");
   if (addr.sun_family != AF_UNIX)
-    return llvm::createStringError("Bad socket type");
+    return llvm::createStringError("bad socket type");
 #ifdef __linux__
   if (addr_len > offsetof(struct sockaddr_un, sun_path) &&
       addr.sun_path[0] == '\0')
diff --git a/lldb/source/Host/posix/PipePosix.cpp b/lldb/source/Host/posix/PipePosix.cpp
index 68b02a9aa465b..93410119d2941 100644
--- a/lldb/source/Host/posix/PipePosix.cpp
+++ b/lldb/source/Host/posix/PipePosix.cpp
@@ -164,7 +164,7 @@ llvm::Error PipePosix::OpenAsWriter(llvm::StringRef name,
                                     const Timeout<std::micro> &timeout) {
   std::lock_guard<std::mutex> guard(m_write_mutex);
   if (CanReadUnlocked() || CanWriteUnlocked())
-    return llvm::createStringError("Pipe is already opened");
+    return llvm::createStringError("pipe is already opened");
 
   int flags = O_WRONLY | O_NONBLOCK | O_CLOEXEC;
 
diff --git a/lldb/source/Interpreter/Options.cpp b/lldb/source/Interpreter/Options.cpp
index 283c9cc0105a1..89e204de6aead 100644
--- a/lldb/source/Interpreter/Options.cpp
+++ b/lldb/source/Interpreter/Options.cpp
@@ -934,7 +934,7 @@ llvm::Expected<Args> Options::ParseAlias(const Args &args,
   Option *long_options = GetLongOptions();
 
   if (long_options == nullptr) {
-    return llvm::createStringError("Invalid long options");
+    return llvm::createStringError("invalid long options");
   }
 
   std::string short_options = BuildShortOptions(long_options);
@@ -959,7 +959,7 @@ llvm::Expected<Args> Options::ParseAlias(const Args &args,
       break;
 
     if (val == '?') {
-      return llvm::createStringError("Unknown or ambiguous option");
+      return llvm::createStringError("unknown or ambiguous option");
     }
 
     if (val == 0)
diff --git a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp
index 9ab1bf03250b1..77f9e4bd27794 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/BlockPointer.cpp
@@ -20,6 +20,7 @@
 #include "lldb/Utility/Log.h"
 #include "lldb/ValueObject/ValueObject.h"
 #include "lldb/ValueObject/ValueObjectConstResult.h"
+#include "llvm/Support/ErrorExtras.h"
 
 using namespace lldb;
 using namespace lldb_private;
@@ -146,8 +147,8 @@ class BlockPointerSyntheticFrontEnd : public SyntheticChildrenFrontEnd {
 
   llvm::Expected<size_t> GetIndexOfChildWithName(ConstString name) override {
     if (!m_block_struct_type.IsValid())
-      return llvm::createStringError("Type has no child named '%s'",
-                                     name.AsCString());
+      return llvm::createStringErrorV("type has no child named '{0}'",
+                                      name.GetStringRef());
 
     const bool omit_empty_base_classes = false;
     return m_block_struct_type.GetIndexOfChildWithName(name.AsCString(),
diff --git a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
index 7a0f556b3aed4..b7da0f592f596 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp
@@ -18,6 +18,7 @@
 
 #include "llvm/ADT/StringRef.h"
 #include "llvm/Demangle/ItaniumDemangle.h"
+#include "llvm/Support/ErrorExtras.h"
 
 #include "lldb/Core/DemangledNameInfo.h"
 #include "lldb/Core/Mangled.h"
@@ -260,24 +261,24 @@ static llvm::Expected<std::pair<llvm::StringRef, DemangledNameInfo>>
 GetAndValidateInfo(const SymbolContext &sc) {
   Mangled mangled = sc.GetPossiblyInlinedFunctionName();
   if (!mangled)
-    return llvm::createStringError("Function does not have a mangled name.");
+    return llvm::createStringError("function does not have a mangled name");
 
   auto demangled_name = mangled.GetDemangledName().GetStringRef();
   if (demangled_name.empty())
-    return llvm::createStringError(
-        "Function '%s' does not have a demangled name.",
-        mangled.GetMangledName().AsCString(""));
+    return llvm::createStringErrorV(
+        "function '{0}' does not have a demangled name",
+        mangled.GetMangledName().GetStringRef());
 
   const std::optional<DemangledNameInfo> &info = mangled.GetDemangledInfo();
   if (!info)
-    return llvm::createStringError(
-        "Function '%s' does not have demangled info.", demangled_name.data());
+    return llvm::createStringErrorV(
+        "function '{0}' does not have demangled info", demangled_name);
 
   // Function without a basename is nonsense.
   if (!info->hasBasename())
-    return llvm::createStringError(
-        "DemangledInfo for '%s does not have basename range.",
-        demangled_name.data());
+    return llvm::createStringErrorV(
+        "demangled info for '{0}' does not have a basename range",
+        demangled_name);
 
   return std::make_pair(demangled_name, *info);
 }
@@ -304,8 +305,8 @@ llvm::Expected<llvm::StringRef>
 CPlusPlusLanguage::GetDemangledTemplateArguments(
     llvm::StringRef demangled, const DemangledNameInfo &info) {
   if (!info.hasTemplateArguments())
-    return llvm::createStringError(
-        "Template arguments range for '%s' is invalid.", demangled.data());
+    return llvm::createStringErrorV(
+        "template arguments range for '{0}' is invalid", demangled);
 
   return demangled.slice(info.TemplateArgumentsRange.first,
                          info.TemplateArgumentsRange.second);
@@ -326,8 +327,8 @@ llvm::Expected<llvm::StringRef>
 CPlusPlusLanguage::GetDemangledReturnTypeLHS(llvm::StringRef demangled,
                                              const DemangledNameInfo &info) {
   if (info.ScopeRange.first >= demangled.size())
-    return llvm::createStringError(
-        "Scope range for '%s' LHS return type is invalid.", demangled.data());
+    return llvm::createStringErrorV(
+        "scope range for '{0}' LHS return type is invalid", demangled);
 
   return demangled.substr(0, info.ScopeRange.first);
 }
@@ -347,8 +348,8 @@ llvm::Expected<llvm::StringRef>
 CPlusPlusLanguage::GetDemangledFunctionQualifiers(
     llvm::StringRef demangled, const DemangledNameInfo &info) {
   if (!info.hasQualifiers())
-    return llvm::createStringError("Qualifiers range for '%s' is invalid.",
-                                   demangled.data());
+    return llvm::createStringErrorV("qualifiers range for '{0}' is invalid",
+                                    demangled);
 
   return demangled.slice(info.QualifiersRange.first,
                          info.QualifiersRange.second);
@@ -370,9 +371,8 @@ llvm::Expected<llvm::StringRef>
 CPlusPlusLanguage::GetDemangledReturnTypeRHS(llvm::StringRef demangled,
                                              const DemangledNameInfo &info) {
   if (info.QualifiersRange.first < info.ArgumentsRange.second)
-    return llvm::createStringError(
-        "Qualifiers range for '%s' RHS return type  is invalid.",
-        demangled.data());
+    return llvm::createStringErrorV(
+        "qualifiers range for '{0}' RHS return type is invalid", demangled);
 
   return demangled.slice(info.ArgumentsRange.second,
                          info.QualifiersRange.first);
@@ -393,8 +393,8 @@ llvm::Expected<llvm::StringRef>
 CPlusPlusLanguage::GetDemangledScope(llvm::StringRef demangled,
                                      const DemangledNameInfo &info) {
   if (!info.hasScope())
-    return llvm::createStringError("Scope range for '%s' is invalid.",
-                                   demangled.data());
+    return llvm::createStringErrorV("scope range for '{0}' is invalid",
+                                    demangled);
 
   return demangled.slice(info.ScopeRange.first, info.ScopeRange.second);
 }
@@ -414,8 +414,8 @@ llvm::Expected<llvm::StringRef>
 CPlusPlusLanguage::GetDemangledFunctionSuffix(llvm::StringRef demangled,
                                               const DemangledNameInfo &info) {
   if (!info.hasSuffix())
-    return llvm::createStringError("Suffix range for '%s' is invalid.",
-                                   demangled.data());
+    return llvm::createStringErrorV("suffix range for '{0}' is invalid",
+                                    demangled);
 
   return demangled.slice(info.SuffixRange.first, info.SuffixRange.second);
 }
@@ -435,8 +435,8 @@ llvm::Expected<llvm::StringRef>
 CPlusPlusLanguage::GetDemangledFunctionArguments(
     llvm::StringRef demangled, const DemangledNameInfo &info) {
   if (!info.hasArguments())
-    return llvm::createStringError(
-        "Function arguments range for '%s' is invalid.", demangled.data());
+    return llvm::createStringErrorV(
+        "function arguments range for '{0}' is invalid", demangled);
 
   return demangled.slice(info.ArgumentsRange.first, info.ArgumentsRange.second);
 }
@@ -2488,8 +2488,8 @@ class ManglingSubstitutor
 
   llvm::Expected<ConstString> substituteImpl(llvm::StringRef Mangled) {
     if (this->parse() == nullptr)
-      return llvm::createStringError(
-          llvm::formatv("Failed to substitute mangling in '{0}'", Mangled));
+      return llvm::createStringErrorV("failed to substitute mangling in '{0}'",
+                                      Mangled);
 
     if (!Substituted)
       return ConstString();
diff --git a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp
index e8c2db1886333..66b201f8673b6 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/Coroutines.cpp
@@ -11,6 +11,7 @@
 #include "Plugins/TypeSystem/Clang/TypeSystemClang.h"
 #include "lldb/Symbol/Function.h"
 #include "lldb/Symbol/VariableList.h"
+#include "llvm/Support/ErrorExtras.h"
 
 using namespace lldb;
 using namespace lldb_private;
@@ -201,8 +202,8 @@ StdlibCoroutineHandleSyntheticFrontEnd::GetIndexOfChildWithName(
       return idx;
   }
 
-  return llvm::createStringError("Type has no child named '%s'",
-                                 name.AsCString());
+  return llvm::createStringErrorV("type has no child named '{0}'",
+                                  name.GetStringRef());
 }
 
 SyntheticChildrenFrontEnd *
diff --git a/lldb/source/Plugins/Language/CPlusPlus/GenericInitializerList.cpp b/lldb/source/Plugins/Language/CPlusPlus/GenericInitializerList.cpp
index 7f012b7fc8aa6..b1763b043a880 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/GenericInitializerList.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/GenericInitializerList.cpp
@@ -9,6 +9,7 @@
 #include "lldb/DataFormatters/FormattersHelpers.h"
 #include "lldb/Utility/ConstString.h"
 #include "lldb/ValueObject/ValueObject.h"
+#include "llvm/Support/ErrorExtras.h"
 #include <cstddef>
 #include <optional>
 #include <type_traits>
@@ -114,13 +115,13 @@ class GenericInitializerListSyntheticFrontEnd
 
   llvm::Expected<size_t> GetIndexOfChildWithName(ConstString name) override {
     if (!m_start) {
-      return llvm::createStringError("Type has no child named '%s'",
-                                     name.AsCString());
+      return llvm::createStringErrorV("type has no child named '{0}'",
+                                      name.GetStringRef());
     }
     auto optional_idx = formatters::ExtractIndexFromString(name.GetCString());
     if (!optional_idx) {
-      return llvm::createStringError("Type has no child named '%s'",
-                                     name.AsCString());
+      return llvm::createStringErrorV("type has no child named '{0}'",
+                                      name.GetStringRef());
     }
     return *optional_idx;
   }
diff --git a/lldb/source/Plugins/Language/CPlusPlus/GenericList.cpp b/lldb/source/Plugins/Language/CPlusPlus/GenericList.cpp
index 841d3b2220df7..e5ef393c09753 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/GenericList.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/GenericList.cpp
@@ -553,11 +553,11 @@ llvm::Expected<uint32_t> MsvcStlListFrontEnd::CalculateNumChildren() {
   auto size_sp =
       m_backend.GetChildAtNamePath({"_Mypair", "_Myval2", "_Mysize"});
   if (!size_sp)
-    return llvm::createStringError("Failed to resolve size.");
+    return llvm::createStringError("failed to resolve size");
 
   m_count = size_sp->GetValueAsUnsigned(UINT32_MAX);
   if (m_count == UINT32_MAX)
-    return llvm::createStringError("Failed to read size value.");
+    return llvm::createStringError("failed to read size value");
 
   return m_count;
 }
diff --git a/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp b/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp
index e4c261a5411f7..271a5ef5d5e77 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/GenericOptional.cpp
@@ -13,6 +13,7 @@
 #include "Plugins/TypeSystem/Clang/TypeSystemClang.h"
 #include "lldb/DataFormatters/FormattersHelpers.h"
 #include "lldb/Target/Target.h"
+#include "llvm/Support/ErrorExtras.h"
 
 using namespace lldb;
 using namespace lldb_private;
@@ -41,8 +42,8 @@ class GenericOptionalFrontend : public SyntheticChildrenFrontEnd {
   llvm::Expected<size_t> GetIndexOfChildWithName(ConstString name) override {
     if (name == "$$dereference$$")
       return 0;
-    return llvm::createStringError("Type has no child named '%s'",
-                                   name.AsCString());
+    return llvm::createStringErrorV("type has no child named '{0}'",
+                                    name.GetStringRef());
   }
 
   llvm::Expected<uint32_t> CalculateNumChildren() override {
diff --git a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
index 57717fac1d00f..49c42f9cfce51 100644
--- a/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
+++ b/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp
@@ -8,6 +8,10 @@
 
 #include "LibCxx.h"
 
+#include "Plugins/Language/CPlusPlus/CxxStringTypes.h"
+#include "Plugins/Language/CPlusPlus/Generic.h"
+#include "Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.h"
+#include "Plugins/TypeSystem/Clang/TypeSystemClang.h"
 #include "lldb/Core/Debugger.h"
 #include "lldb/Core/FormatEntity.h"
 #include "lldb/DataFormatters/FormattersHelpers.h"
@@ -23,13 +27,9 @@
 #include "lldb/Utility/Stream.h"
 #include "lldb/ValueObject/ValueObject.h"
 #include "lldb/ValueObject/ValueObjectConstResult.h"
-
-#include "Plugins/Language/CPlusPlus/CxxStringTypes.h"
-#include "Plugins/Language/CPlusPlus/Generic.h"
-#include "Plugins/LanguageRuntime/CPlusPlus/CPPLanguageRuntime.h"
-#include "Plugins/TypeSystem/Clang/TypeSystemClang.h"
 #include "lldb/lldb-enumerations.h"
 #include "lldb/lldb-forward.h"
+#include "llvm/Support/ErrorExtras.h"
 #include <optional>
 #include <tuple>
 
@@ -416,8 +416,8 @@ lldb_private::formatters::LibcxxSharedPtrSyntheticFrontEnd::
   if (name == "object" || name == "$$dereference$$")
     return 1;
 
-  return llvm::createStringError("Type has no child named '%s'",
-                                 name.AsCString());
+  return llvm::createStringErrorV("type has no child named '{0}'",
+                                  name.GetStringRef());
 }
 
 lldb_private::formatters:...
[truncated]

``````````

</details>


https://github.com/llvm/llvm-project/pull/190410


More information about the lldb-commits mailing list