diff options
author | Jan-Arve Sæther <jan-arve.saether@nokia.com> | 2009-11-23 14:39:31 (GMT) |
---|---|---|
committer | Jan-Arve Sæther <jan-arve.saether@nokia.com> | 2009-11-23 14:39:31 (GMT) |
commit | db5e4496229a776768464d1d3d2e1f8e81bd6ba0 (patch) | |
tree | f8bc72726a22837d894524b614b043a943664502 /src/corelib/kernel | |
parent | f54e239174cea9ce54acd8fd7e6360a663bcfcae (diff) | |
download | Qt-db5e4496229a776768464d1d3d2e1f8e81bd6ba0.zip Qt-db5e4496229a776768464d1d3d2e1f8e81bd6ba0.tar.gz Qt-db5e4496229a776768464d1d3d2e1f8e81bd6ba0.tar.bz2 |
Compile fix for win32-icc.
The Intel Compiler inlined the destructor of QObjectPrivate too
agressively, causing it to generate a call to ~QObjectData for QtGui.
~QObjectData is not exported from QtCore, so it failed linking.
Task-number: QTBUG-5145
Reviewed-by: Alexis Menard
Diffstat (limited to 'src/corelib/kernel')
-rw-r--r-- | src/corelib/kernel/qobject.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/corelib/kernel/qobject.cpp b/src/corelib/kernel/qobject.cpp index 1260d47..95602d9 100644 --- a/src/corelib/kernel/qobject.cpp +++ b/src/corelib/kernel/qobject.cpp @@ -154,6 +154,15 @@ QObjectPrivate::QObjectPrivate(int version) hasGuards = false; } +#ifdef Q_CC_INTEL +/* Workaround for a bug in win32-icc where it seems to inline ~QObjectPrivate too aggressive. + When icc compiles QtGui, it inlines ~QObjectPrivate so that it would generate a call to + ~QObjectData. However, ~QObjectData is not exported from QtCore, so it does not link. + See also QTBUG-5145 for info on how this manifested itself. + */ +# pragma auto_inline(off) +#endif + QObjectPrivate::~QObjectPrivate() { delete static_cast<QAbstractDynamicMetaObject*>(metaObject); @@ -165,6 +174,9 @@ QObjectPrivate::~QObjectPrivate() delete extraData; #endif } +#ifdef Q_CC_INTEL +# pragma auto_inline(on) +#endif int *QObjectPrivate::setDeleteWatch(QObjectPrivate *d, int *w) { |