qt6-bb10/tests/auto
Marc Mutz e4c6d73f92 QRect: fix UB (int overflow) in center()
QRect::center() should be defined for any
  QRect(x1,y1,x2,x2), INT_MIN <= x1, x2, y1, y2 <= INT_MAX
because the average of two signed integers is always
representable as a signed integer.

But not when it's calculated as (x1+x2)/2, since that
expression overflows when x1 > INT_MAX - x2.

Instead of playing games with Hacker's Delight-style
expressions, or use Google's patented algorithm, which
requires two divisions, take advantage of the fact that
int is not intmax_t and perform the calculation in the
qint64 domain. The cast back to int is always well-
defined since, as mentioned, the result is always
representable in an int.

Fix a test-case that expected a nonsensical result due
to overflow.

[ChangeLog][QtCore][QRect] Fixed integer overflow in
center(). This fixes the result for some corner-cases
like a 1x1 rectangle at (INT_MIN, INT_MIN), for which
the previous implementation could return anything
(due to invoking undefined behavior), but commonly
returned (0, 0).

Change-Id: I1a885ca6dff770327dd31655c3eb473fcfeb8878
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2016-03-15 11:23:46 +00:00
..
android Fix typo in test results report for android 2015-07-28 21:16:19 +00:00
bic/data bic: Add 5.{1,2,3,4}.0 bic data for linux-gcc-amd64 2015-02-14 06:54:20 +00:00
cmake CMake: Don't attempt gui-tests if Qt is built with -no-gui 2016-01-18 13:00:03 +00:00
compilerwarnings/data Fixed license headers 2015-02-17 18:46:09 +00:00
concurrent Tests: Replace Q[TRY]_VERIFY(v == true|false) by QVERIFY(v)|QVERIFY(!v). 2015-07-27 12:09:19 +00:00
corelib QRect: fix UB (int overflow) in center() 2016-03-15 11:23:46 +00:00
dbus Autotest: rename the test class so it's different in this test 2016-01-30 03:20:54 +00:00
gui Enable most of tst_qstatictext on non-developer builds 2016-03-10 15:45:41 +00:00
guiapplauncher Fix path to examples part of tst_GuiAppLauncher 2015-02-13 07:28:15 +00:00
installed_cmake
network QLocalServer/Win: Fix race condition in listen(). 2016-03-10 17:32:49 +00:00
opengl Autotest: Enable make check on rhel 7.1 2016-02-11 05:47:38 +00:00
other Autotest: Enable make check on rhel 7.1 2016-02-11 05:47:38 +00:00
printsupport QMacPrintEngine: Really set the printer resolution 2016-02-25 18:42:47 +00:00
shared Update copyright headers 2015-02-11 06:49:51 +00:00
sql tst_QSqlQuery: fix UBs (invalid downcasts, member calls) 2016-03-15 10:39:20 +00:00
testlib Fix compilation for WinRT 2015-12-14 08:43:15 +00:00
tools QObject: fix GCC 6 warning about qt_static_metacall's 'hidden' attribute use 2016-03-09 20:11:28 +00:00
widgets Remove restoreDockWidget from BLACKLIST 2016-03-15 09:41:09 +00:00
xml Fix QDomNamedNodeMap::item crash with negative index 2015-10-29 08:05:45 +00:00
auto.pro Silence warnings about missing dbus-send command not found 2015-09-22 21:19:04 +00:00
network-settings.h Update copyright headers 2015-02-11 06:49:51 +00:00
qtest-config.h Update copyright headers 2015-02-11 06:49:51 +00:00
test.pl Update copyright headers 2015-02-11 06:49:51 +00:00