From 790b600840920f8ac4f56af1e1232cd97ad510bd Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Sun, 17 Jan 2021 19:07:48 +0100 Subject: Mark qBadAlloc as [[noreturn]] So that static analyzers don't get confused by its semantics. In builds with exceptions disabled, it's not actually called by client code (e.g. Q_CHECK_PTR will just terminate in that case), but we still need to make it not return -- add another path that callss std::terminate(), otherwise we'd have a noreturn function returning. Change-Id: Ia8c4ce3e9d971f1757e9c273051cb3dedf23c61f Reviewed-by: Thiago Macieira --- src/corelib/global/qglobal.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/corelib/global/qglobal.cpp') diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp index 65c72d9abe..139c8f3a30 100644 --- a/src/corelib/global/qglobal.cpp +++ b/src/corelib/global/qglobal.cpp @@ -3098,7 +3098,11 @@ 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 -- cgit v1.2.3