Change an addition into a subtraction

This potentially resolves the long-standing warning from GCC:
 assuming signed overflow does not occur when assuming that (X + c) < X
 is always false

GCC prints the warning to warn people that you can't check for overflow
with signed integers by doing that (signed integers don't overflow in
the standard).

If we change this to X < X - c, there's no overflow.

Task-number: QTBUG-33314
Change-Id: I5b166610a39559ec7b03c4c31ee5999efefa0c06
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
This commit is contained in:
Thiago Macieira 2013-10-14 18:13:14 -07:00 committed by The Qt Project
parent 22c2d13406
commit deb925b1b6

View File

@ -639,7 +639,7 @@ inline void QList<T>::move(int from, int to)
template<typename T>
Q_OUTOFLINE_TEMPLATE QList<T> QList<T>::mid(int pos, int alength) const
{
if (alength < 0 || pos + alength > size())
if (alength < 0 || pos > size() - alength)
alength = size() - pos;
if (pos == 0 && alength == size())
return *this;