Remove redundant std::move on const object
authorJonathan Wakely <jwakely@redhat.com>
Wed, 6 Jun 2018 19:39:27 +0000 (20:39 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Wed, 6 Jun 2018 19:39:27 +0000 (20:39 +0100)
* include/bits/shared_ptr_base.h (__shared_count): Remove redundant
move of const value.

From-SVN: r261245

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/shared_ptr_base.h

index de40fb4468c7f6e919c20ba2fb93da1376a322db..24d1849af7dcdcc2213e7229fa144ec7ad4cd80f 100644 (file)
@@ -1,3 +1,8 @@
+2018-06-06  Jonathan Wakely  <jwakely@redhat.com>
+
+       * include/bits/shared_ptr_base.h (__shared_count): Remove redundant
+       move of const value.
+
 2018-06-06  Jakub Jelinek  <jakub@redhat.com>
 
        PR c++/86068
index 6c5089afddae5ce77650dd2faed52a784ef50fc6..887edbd78791f48a1fcc1ca9213df819956d918b 100644 (file)
@@ -534,6 +534,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     public:
       using __allocator_type = __alloc_rebind<_Alloc, _Sp_counted_ptr_inplace>;
 
+      // Alloc parameter is not a reference so doesn't alias anything in __args
       template<typename... _Args>
        _Sp_counted_ptr_inplace(_Alloc __a, _Args&&... __args)
        : _M_impl(__a)
@@ -653,8 +654,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
          typename _Sp_cp_type::__allocator_type __a2(__a);
          auto __guard = std::__allocate_guarded(__a2);
          _Sp_cp_type* __mem = __guard.get();
-         ::new (__mem) _Sp_cp_type(std::move(__a),
-                                   std::forward<_Args>(__args)...);
+         ::new (__mem) _Sp_cp_type(__a, std::forward<_Args>(__args)...);
          _M_pi = __mem;
          __guard = nullptr;
        }