diff --git a/stl/inc/vector b/stl/inc/vector index 3e469e3d15e..093b0c96acf 100644 --- a/stl/inc/vector +++ b/stl/inc/vector @@ -3859,7 +3859,7 @@ _CONSTEXPR20 _OutIt _Copy_vbool(_VbIt _First, _VbIt _Last, _OutIt _Dest) { const auto _DestMask = _FirstDestMask | (_DestEnd._Myoff == 0 ? 0 : _LastDestMask); if (_Last._Myoff != 0) { - const auto _LastShift = _DestEnd._Myoff - _Last._Myoff; + const auto _LastShift = _DestEnd._Myoff != 0 ? _DestEnd._Myoff - _Last._Myoff : _VBITS - _Last._Myoff; const auto _LastSourceVal = (*_VbLast & _LastSourceMask) << _LastShift; *_VbDest = (*_VbDest & _DestMask) | _SourceVal | _LastSourceVal; } else {