[libcxx-commits] [libcxx] [libc++] Remove unnecessary assignments (PR #78678)

via libcxx-commits libcxx-commits at lists.llvm.org
Thu Jan 18 23:13:12 PST 2024


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-libcxx

Author: Tacet (AdvenamTacet)

<details>
<summary>Changes</summary>

This commit removes unnecessary assignments, which already happen in called functions.

This PR is untested, I just spotted it trying to understand why https://github.com/llvm/llvm-project/pull/75882 is causing problems with buildbots.

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


1 Files Affected:

- (modified) libcxx/include/vector (+7-16) 


``````````diff
diff --git a/libcxx/include/vector b/libcxx/include/vector
index e9dd57055cb112d..81c70394fd8ec37 100644
--- a/libcxx/include/vector
+++ b/libcxx/include/vector
@@ -1459,26 +1459,20 @@ vector<_Tp, _Allocator>::__push_back_slow_path(_Up&& __x) {
 template <class _Tp, class _Allocator>
 _LIBCPP_CONSTEXPR_SINCE_CXX20 inline _LIBCPP_HIDE_FROM_ABI void
 vector<_Tp, _Allocator>::push_back(const_reference __x) {
-  pointer __end = this->__end_;
-  if (__end < this->__end_cap()) {
+  if (this->__end_ < this->__end_cap()) {
     __construct_one_at_end(__x);
-    ++__end;
   } else {
-    __end = __push_back_slow_path(__x);
+    __push_back_slow_path(__x);
   }
-  this->__end_ = __end;
 }
 
 template <class _Tp, class _Allocator>
 _LIBCPP_CONSTEXPR_SINCE_CXX20 inline _LIBCPP_HIDE_FROM_ABI void vector<_Tp, _Allocator>::push_back(value_type&& __x) {
-  pointer __end = this->__end_;
-  if (__end < this->__end_cap()) {
+  if (this->__end_ < this->__end_cap()) {
     __construct_one_at_end(std::move(__x));
-    ++__end;
   } else {
-    __end = __push_back_slow_path(std::move(__x));
+    __push_back_slow_path(std::move(__x));
   }
-  this->__end_ = __end;
 }
 
 template <class _Tp, class _Allocator>
@@ -1503,16 +1497,13 @@ _LIBCPP_CONSTEXPR_SINCE_CXX20 inline
     void
 #endif
     vector<_Tp, _Allocator>::emplace_back(_Args&&... __args) {
-  pointer __end = this->__end_;
-  if (__end < this->__end_cap()) {
+  if (this->__end_ < this->__end_cap()) {
     __construct_one_at_end(std::forward<_Args>(__args)...);
-    ++__end;
   } else {
-    __end = __emplace_back_slow_path(std::forward<_Args>(__args)...);
+    __emplace_back_slow_path(std::forward<_Args>(__args)...);
   }
-  this->__end_ = __end;
 #if _LIBCPP_STD_VER >= 17
-  return *(__end - 1);
+  return *(this->__end_ - 1);
 #endif
 }
 

``````````

</details>


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


More information about the libcxx-commits mailing list