Suppress bugprone-use-after-move in benign cases PiperOrigin-RevId: 852923303 Change-Id: I41ef782f514ad4301b928b49f3659f4dac3d11fd
diff --git a/absl/container/internal/btree_container.h b/absl/container/internal/btree_container.h index f4f41d0..e1649e3 100644 --- a/absl/container/internal/btree_container.h +++ b/absl/container/internal/btree_container.h
@@ -672,27 +672,36 @@ std::pair<iterator, bool> insert_or_assign_impl(K &&k, M &&obj) { const std::pair<iterator, bool> ret = this->tree_.insert_unique(k, std::forward<K>(k), std::forward<M>(obj)); - if (!ret.second) ret.first->second = std::forward<M>(obj); + if (!ret.second) { + // NOLINTNEXTLINE(bugprone-use-after-move) + ret.first->second = std::forward<M>(obj); + } return ret; } template <class K, class M> iterator insert_or_assign_hint_impl(const_iterator hint, K &&k, M &&obj) { const std::pair<iterator, bool> ret = this->tree_.insert_hint_unique( iterator(hint), k, std::forward<K>(k), std::forward<M>(obj)); - if (!ret.second) ret.first->second = std::forward<M>(obj); + if (!ret.second) { + // NOLINTNEXTLINE(bugprone-use-after-move) + ret.first->second = std::forward<M>(obj); + } return ret.first; } template <class K, class... Args> std::pair<iterator, bool> try_emplace_impl(K &&k, Args &&... args) { return this->tree_.insert_unique( + // NOLINTNEXTLINE(bugprone-use-after-move) k, std::piecewise_construct, std::forward_as_tuple(std::forward<K>(k)), std::forward_as_tuple(std::forward<Args>(args)...)); } template <class K, class... Args> iterator try_emplace_hint_impl(const_iterator hint, K &&k, Args &&... args) { return this->tree_ - .insert_hint_unique(iterator(hint), k, std::piecewise_construct, + .insert_hint_unique(iterator(hint), + // NOLINTNEXTLINE(bugprone-use-after-move) + k, std::piecewise_construct, std::forward_as_tuple(std::forward<K>(k)), std::forward_as_tuple(std::forward<Args>(args)...)) .first;
diff --git a/absl/container/internal/container_memory.h b/absl/container/internal/container_memory.h index 608a865..47064a7 100644 --- a/absl/container/internal/container_memory.h +++ b/absl/container/internal/container_memory.h
@@ -135,6 +135,7 @@ template <class T, size_t... Is> auto TupleRefImpl(T&& t, absl::index_sequence<Is...>) -> decltype(std::forward_as_tuple(std::get<Is>(std::forward<T>(t))...)) { + // NOLINTNEXTLINE(bugprone-use-after-move) return std::forward_as_tuple(std::get<Is>(std::forward<T>(t))...); }
diff --git a/absl/container/linked_hash_map.h b/absl/container/linked_hash_map.h index cec0ada..8348011 100644 --- a/absl/container/linked_hash_map.h +++ b/absl/container/linked_hash_map.h
@@ -628,7 +628,10 @@ std::pair<iterator, bool> InsertOrAssignInternal(K&& k, V&& v) { auto [it, inserted] = LazyEmplaceInternal(std::forward<K>(k), std::forward<V>(v)); - if (!inserted) it->second = std::forward<V>(v); + if (!inserted) { + // NOLINTNEXTLINE(bugprone-use-after-move) + it->second = std::forward<V>(v); + } return {it, inserted}; }