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.

Pick-to: 6.4
Change-Id: Ie7b39bd93bc5e1a173e245a3a5d5ff7e9067a59f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Kai Köhne 2022-06-21 16:20:08 +02:00
parent f921b42f34
commit bc06e345fe

View File

@ -60,7 +60,6 @@
# define Q_FUNC_INFO __FUNCSIG__
# define Q_ASSUME_IMPL(expr) __assume(expr)
# define Q_UNREACHABLE_IMPL() __assume(0)
# define Q_NORETURN __declspec(noreturn)
# define Q_DECL_EXPORT __declspec(dllexport)
# define Q_DECL_IMPORT __declspec(dllimport)
# 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]]
#endif
#if __has_cpp_attribute(noreturn)
# undef Q_NORETURN
# define Q_NORETURN [[noreturn]]
#endif
#if __has_cpp_attribute(deprecated)
# ifdef Q_DECL_DEPRECATED
# undef Q_DECL_DEPRECATED