diff --git a/libstdc++-v3/include/bits/ranges_algo.h b/libstdc++-v3/include/bits/ranges_algo.h
index 5577d862cb51eea4cdee07d88ebf497809895de1..1685e1d85bb7588d938840d948fdf82f239223f4 100644
--- a/libstdc++-v3/include/bits/ranges_algo.h
+++ b/libstdc++-v3/include/bits/ranges_algo.h
@@ -3568,10 +3568,10 @@ namespace ranges
 
   struct __find_last_fn
   {
-    template<forward_iterator _Iter, sentinel_for<_Iter> _Sent, typename T, typename _Proj = identity>
-      requires indirect_binary_predicate<ranges::equal_to, projected<_Iter, _Proj>, const T*>
+    template<forward_iterator _Iter, sentinel_for<_Iter> _Sent, typename _Tp, typename _Proj = identity>
+      requires indirect_binary_predicate<ranges::equal_to, projected<_Iter, _Proj>, const _Tp*>
       constexpr subrange<_Iter>
-      operator()(_Iter __first, _Sent __last, const T& __value, _Proj __proj = {}) const
+      operator()(_Iter __first, _Sent __last, const _Tp& __value, _Proj __proj = {}) const
       {
 	if constexpr (same_as<_Iter, _Sent> && bidirectional_iterator<_Iter>)
 	  {
@@ -3599,10 +3599,10 @@ namespace ranges
 	  }
       }
 
-    template<forward_range _Range, typename T, typename _Proj = identity>
-      requires indirect_binary_predicate<ranges::equal_to, projected<iterator_t<_Range>, _Proj>, const T*>
+    template<forward_range _Range, typename _Tp, typename _Proj = identity>
+      requires indirect_binary_predicate<ranges::equal_to, projected<iterator_t<_Range>, _Proj>, const _Tp*>
       constexpr borrowed_subrange_t<_Range>
-      operator()(_Range&& __r, const T& __value, _Proj __proj = {}) const
+      operator()(_Range&& __r, const _Tp& __value, _Proj __proj = {}) const
       { return (*this)(ranges::begin(__r), ranges::end(__r), __value, std::move(__proj)); }
   };