diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2015-05-26 22:16:25 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2015-06-02 21:50:53 +0000 |
commit | 2fa7b3b317fa941064ec4ba62163e3244becf55a (patch) | |
tree | d1d89310e353901412a1cc1b0f7aad7e56191813 /src/corelib/thread/qexception.cpp | |
parent | b1a0cf72f84803196539c4b0b03bfaeea9000d94 (diff) |
Q(Unhandled)Exception: declare dtor out-of-line
De-duplicates vtables and enables RTTI on this hierarchy.
This is esp. important for exception classes, as RTTI is used
to select the catch clause to handle the exception in-flight.
The issue is made a bit complicated by the fact that the
exception specification changed from C++98 to 11 and that C++98
clients require the empty throw() specification while we don't
want to introduce warnings for C++11 users.
Let's hope no compiler includes throw specs into the mangled
names.
Task-number: QTBUG-45582
Change-Id: If086c8c38fccdc2c9c7e2aa7a492192cc1f86a6c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/thread/qexception.cpp')
-rw-r--r-- | src/corelib/thread/qexception.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/corelib/thread/qexception.cpp b/src/corelib/thread/qexception.cpp index acc3663936..550bdc8fe4 100644 --- a/src/corelib/thread/qexception.cpp +++ b/src/corelib/thread/qexception.cpp @@ -107,6 +107,11 @@ QT_BEGIN_NAMESPACE \internal */ +QException::~QException() +{ + // must stay empty until ### Qt 6 +} + void QException::raise() const { QException e = *this; @@ -118,6 +123,11 @@ QException *QException::clone() const return new QException(*this); } +QUnhandledException::~QUnhandledException() +{ + // must stay empty until ### Qt 6 +} + void QUnhandledException::raise() const { QUnhandledException e = *this; |