https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99402
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> --- This causes __valid_range to return {11, __dp_sign_max_size} and then we check __result._M_can_advance(11) which fails. We don't want to advance the result by the size of the other sequence, only by distance(__first, __last). We don't care if there are elements in the sequence past __last because we're not trying to copy them.