https://github.com/JDevlieghere updated 
https://github.com/llvm/llvm-project/pull/168979

>From 8807e1b34aba6f2fc2f9a2d3575390c360b16b43 Mon Sep 17 00:00:00 2001
From: Jonas Devlieghere <[email protected]>
Date: Thu, 20 Nov 2025 17:08:27 -0800
Subject: [PATCH] [lldb] Add assert to NonNullSharedPtr move constructor

As suggested by Augusto,  add an assert to NonNullSharedPtr move
constructor.
---
 lldb/include/lldb/Utility/NonNullSharedPtr.h | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/lldb/include/lldb/Utility/NonNullSharedPtr.h 
b/lldb/include/lldb/Utility/NonNullSharedPtr.h
index 7e12ce72c6238..d084e79759d1b 100644
--- a/lldb/include/lldb/Utility/NonNullSharedPtr.h
+++ b/lldb/include/lldb/Utility/NonNullSharedPtr.h
@@ -29,12 +29,14 @@ template <typename T> class NonNullSharedPtr : private 
std::shared_ptr<T> {
 public:
   NonNullSharedPtr(const std::shared_ptr<T> &t)
       : Base(t ? t : std::make_shared<T>()) {
-    assert(t && "NonNullSharedPtr initialized from NULL shared_ptr");
+    assert(t && "NonNullSharedPtr constructed from nullptr");
   }
 
-  NonNullSharedPtr(std::shared_ptr<T> &&t)
-      : Base(t ? std::move(t) : std::make_shared<T>()) {
-    // Can't assert on t as it's been moved-from.
+  NonNullSharedPtr(std::shared_ptr<T> &&t) : Base(std::move(t)) {
+    const auto b = static_cast<bool>(*this);
+    assert(b && "NonNullSharedPtr constructed from nullptr");
+    if (!b)
+      Base::operator=(std::make_shared<T>());
   }
 
   NonNullSharedPtr(const NonNullSharedPtr &other) : Base(other) {}

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

Reply via email to