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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|2022-04-28 00:00:00         |2025-04-02
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
The code has:

   const value_type *const beg_raw =
boost::movelib::iterator_to_raw_pointer(f);
   const value_type *const end_raw =
boost::movelib::iterator_to_raw_pointer(l);
   if(__builtin_expect(beg_raw != end_raw && dest_raw && beg_raw, 1)){
      const std::size_t n = std::size_t(end_raw - beg_raw) ;
      std::memmove(dest_raw, beg_raw, sizeof(value_type)*n);
      r += static_cast<r_difference_type>(n);
   }

I tried adding:

      if (end_raw < beg_raw) __builtin_unreachable();

But it didn't make any difference.

Reply via email to