Use [[noreturn]] attribute

Use __has_cpp_attribute mechanism to check availability of
[[noreturn]]. For MSVC 2019 and 2022, this is always
the case, so we  can also remove the (now dead)
__declpsec(noreturn) definition.

Change-Id: Ie7b39bd93bc5e1a173e245a3a5d5ff7e9067a59f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
(cherry picked from commit bc06e345fe6e284e4dc72f3e02662641dcb9ed71)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Kai Köhne 2022-06-21 16:20:08 +02:00 committed by Qt Cherry-pick Bot
parent e2ff48441b
commit 4c74314b6b

View File

@ -60,7 +60,6 @@
# define Q_FUNC_INFO __FUNCSIG__ # define Q_FUNC_INFO __FUNCSIG__
# define Q_ASSUME_IMPL(expr) __assume(expr) # define Q_ASSUME_IMPL(expr) __assume(expr)
# define Q_UNREACHABLE_IMPL() __assume(0) # define Q_UNREACHABLE_IMPL() __assume(0)
# define Q_NORETURN __declspec(noreturn)
# define Q_DECL_EXPORT __declspec(dllexport) # define Q_DECL_EXPORT __declspec(dllexport)
# define Q_DECL_IMPORT __declspec(dllimport) # define Q_DECL_IMPORT __declspec(dllimport)
# define QT_MAKE_UNCHECKED_ARRAY_ITERATOR(x) stdext::make_unchecked_array_iterator(x) // Since _MSC_VER >= 1800 # define QT_MAKE_UNCHECKED_ARRAY_ITERATOR(x) stdext::make_unchecked_array_iterator(x) // Since _MSC_VER >= 1800
@ -928,6 +927,11 @@
# define Q_DECL_UNUSED [[maybe_unused]] # define Q_DECL_UNUSED [[maybe_unused]]
#endif #endif
#if __has_cpp_attribute(noreturn)
# undef Q_NORETURN
# define Q_NORETURN [[noreturn]]
#endif
#if __has_cpp_attribute(deprecated) #if __has_cpp_attribute(deprecated)
# ifdef Q_DECL_DEPRECATED # ifdef Q_DECL_DEPRECATED
# undef Q_DECL_DEPRECATED # undef Q_DECL_DEPRECATED