[Bug libstdc++/64476] New: std::uninitialized_copy tests assignability the wrong way, resulting in performance pessimization

gcc-bugzilla at contacts dot eelis.net gcc-bugzilla@gcc.gnu.org
Sat Jan 3 00:23:00 GMT 2015


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64476

            Bug ID: 64476
           Summary: std::uninitialized_copy tests assignability the wrong
                    way, resulting in performance pessimization
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gcc-bugzilla at contacts dot eelis.net

It does:

  typedef typename iterator_traits<_InputIterator>::reference _RefType;
  const bool __assignable = is_assignable<_ValueType1, _RefType>::value;

but should do:

  typedef typename iterator_traits<_ForwardIterator>::reference _RefType;
  const bool __assignable = is_assignable<_RefType, _ValueType1>::value;



More information about the Gcc-bugs mailing list