diff options
author | Alexey Edelev <alexey.edelev@qt.io> | 2021-05-14 11:37:06 +0200 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2021-05-17 08:30:30 +0000 |
commit | 9e271fe24cf1dc64bbfd90fcec8564420b3fec9b (patch) | |
tree | aad25b8b630f02dbd08abf37d8f3491427976062 /src | |
parent | ef02470d819317933cb3a57142ec3215e9ba35c0 (diff) |
Make qTerminate available when QT_NO_EXCEPTIONS flag is set
It seems that QtCore could only be compiled with exceptions enabled.
Therefore it doesn't make sense to keep conditonal code under
QT_NO_EXCEPTIONS in qglobal.cpp. qTerminate may be called whether
exceptions are enabled or not.
Fixes: QTBUG-93739
Change-Id: Ie49c10f27cfa75360f018e8638603e6a1791450e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
(cherry picked from commit 282b724808ea4524ed09b9f0183055fdffc3c38a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/global/qglobal.cpp | 12 | ||||
-rw-r--r-- | src/corelib/global/qglobal.h | 2 |
2 files changed, 3 insertions, 11 deletions
diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp index c046b8078d..2ec14a6a46 100644 --- a/src/corelib/global/qglobal.cpp +++ b/src/corelib/global/qglobal.cpp @@ -59,10 +59,8 @@ #include <stdarg.h> #include <string.h> -#ifndef QT_NO_EXCEPTIONS -# include <string> -# include <exception> -#endif +#include <string> +#include <exception> #include <errno.h> #if defined(Q_CC_MSVC) @@ -3098,14 +3096,9 @@ void qt_check_pointer(const char *n, int l) noexcept */ void qBadAlloc() { -#ifndef QT_NO_EXCEPTIONS QT_THROW(std::bad_alloc()); -#else - std::terminate(); -#endif } -#ifndef QT_NO_EXCEPTIONS /* \internal Allows you to call std::terminate() without including <exception>. @@ -3115,7 +3108,6 @@ Q_NORETURN void qTerminate() noexcept { std::terminate(); } -#endif /* The Q_ASSERT macro calls this function when the test fails. diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index 47ffe17034..07385db26b 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -834,6 +834,7 @@ inline void qt_noop(void) {} # endif #endif +Q_NORETURN Q_DECL_COLD_FUNCTION Q_CORE_EXPORT void qTerminate() noexcept; #ifdef QT_NO_EXCEPTIONS # define QT_TRY if (true) # define QT_CATCH(A) else @@ -845,7 +846,6 @@ inline void qt_noop(void) {} # define QT_CATCH(A) catch (A) # define QT_THROW(A) throw A # define QT_RETHROW throw -Q_NORETURN Q_DECL_COLD_FUNCTION Q_CORE_EXPORT void qTerminate() noexcept; # ifdef Q_COMPILER_NOEXCEPT # define QT_TERMINATE_ON_EXCEPTION(expr) do { expr; } while (false) # else |