qt5base-lts/tests/auto
João Abecasis 5a92dd6124 Detect incompatibilities in repeated type registration
QMetaType used to register a typeName and factory functions for
creation/destruction of objects. While it would be possible for a single
type name to be registered matching different actual types and memory
layouts, there was little that could be done about it.

Now that QMetaType is tracking type information with a direct impact on
data layout and ABI (size and type flags) it is important that we check
and detect binary incompatibilities as early as possible.

[Such incompatibilities could arise from type name re-use (technically,
ODR violations) or, more commonly, as version mismatch between different
shared libraries or plugins.]

Only type size and flags are checked as function pointers to inline and
template or otherwise non-exported functions could trivially differ
across translation units and shared libraries.

When registering typedef types, a check is made to ensure the same name
doesn't get registered as different types.

Change-Id: I8211c3de75d4854ce8fafdb620d3a931c206e0c3
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
2012-02-07 09:47:51 +01:00
..
bic Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
compilerwarnings/data Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
concurrent Complete split of QtConcurrent. 2012-02-06 16:48:22 +01:00
corelib Detect incompatibilities in repeated type registration 2012-02-07 09:47:51 +01:00
dbus Align QVariant::UserType and QMetaType::User 2012-02-07 08:52:32 +01:00
gui Fix error in qcssparser autotest. 2012-02-07 08:29:06 +01:00
guiapplauncher Update the documentation after moving examples. 2011-07-05 21:19:08 +02:00
network tst_qnetworkreply: remove no such signal warnings 2012-02-07 08:42:58 +01:00
opengl Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
other Allow function types to be registered without workarounds 2012-01-31 16:17:55 +01:00
sql Handle the 'real' datatype correctly in the SQLite driver 2012-02-03 15:09:03 +01:00
testlib Fixed selftests unittest on windows 2012-02-02 05:42:07 +01:00
tools Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
widgets Fix error in qgraphicsanchorlayout1 autotest. 2012-02-07 08:29:19 +01:00
xml Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
auto.pro Move QtConcurrent into its own module 2012-02-05 17:49:16 +01:00
network-settings.h Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
platformquirks.h Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
test.pl Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00