diff --git a/include/behaviortree_cpp/utils/thread_safe_signal.h b/include/behaviortree_cpp/utils/thread_safe_signal.h index 394a9ad30..07b3d36fb 100644 --- a/include/behaviortree_cpp/utils/thread_safe_signal.h +++ b/include/behaviortree_cpp/utils/thread_safe_signal.h @@ -49,7 +49,8 @@ class ThreadSafeSignal { const std::scoped_lock lock(mutex_); removeExpired(); - subscribers = subscribers_; + // Copy-construct the snapshot to avoid a GCC 15 -Wnull-dereference false positive. + subscribers = decltype(subscribers)(subscribers_); } for(const auto& weak_subscriber : subscribers) {