From 217a5f07451f4439d569af7161b31e4fda04e3b2 Mon Sep 17 00:00:00 2001 From: Sona Kurazyan Date: Thu, 11 Aug 2022 16:09:08 +0200 Subject: Move the checks for disabling useless warnings to qcompilerdetection.h Task-number: QTBUG-99313 Change-Id: I7b4a62e7a8f8a07a9386a6f1f41a33c3fc802daf Reviewed-by: Thiago Macieira --- src/corelib/global/qcompilerdetection.h | 31 +++++++++++++++++++++++++++++++ src/corelib/global/qglobal.h | 31 ------------------------------- 2 files changed, 31 insertions(+), 31 deletions(-) (limited to 'src/corelib') diff --git a/src/corelib/global/qcompilerdetection.h b/src/corelib/global/qcompilerdetection.h index 3d5d1b1432..cab2b01a76 100644 --- a/src/corelib/global/qcompilerdetection.h +++ b/src/corelib/global/qcompilerdetection.h @@ -1282,6 +1282,37 @@ static_assert(!std::is_convertible_v, # define Q_INLINE_TEMPLATE inline #endif +/* + Avoid some particularly useless warnings from some stupid compilers. + To get ALL C++ compiler warnings, define QT_CC_WARNINGS or comment out + the line "#define QT_NO_WARNINGS". See also QTBUG-26877. +*/ +#if !defined(QT_CC_WARNINGS) +# define QT_NO_WARNINGS +#endif +#if defined(QT_NO_WARNINGS) +# if defined(Q_CC_MSVC) +QT_WARNING_DISABLE_MSVC(4251) /* class 'type' needs to have dll-interface to be used by clients of class 'type2' */ +QT_WARNING_DISABLE_MSVC(4244) /* conversion from 'type1' to 'type2', possible loss of data */ +QT_WARNING_DISABLE_MSVC(4275) /* non - DLL-interface classkey 'identifier' used as base for DLL-interface classkey 'identifier' */ +QT_WARNING_DISABLE_MSVC(4514) /* unreferenced inline function has been removed */ +QT_WARNING_DISABLE_MSVC(4800) /* 'type' : forcing value to bool 'true' or 'false' (performance warning) */ +QT_WARNING_DISABLE_MSVC(4097) /* typedef-name 'identifier1' used as synonym for class-name 'identifier2' */ +QT_WARNING_DISABLE_MSVC(4706) /* assignment within conditional expression */ +QT_WARNING_DISABLE_MSVC(4355) /* 'this' : used in base member initializer list */ +QT_WARNING_DISABLE_MSVC(4710) /* function not inlined */ +QT_WARNING_DISABLE_MSVC(4530) /* C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc */ +# elif defined(Q_CC_BOR) +# pragma option -w-inl +# pragma option -w-aus +# pragma warn -inl +# pragma warn -pia +# pragma warn -ccc +# pragma warn -rch +# pragma warn -sig +# endif +#endif + #endif // __cplusplus #endif // QCOMPILERDETECTION_H diff --git a/src/corelib/global/qglobal.h b/src/corelib/global/qglobal.h index 9ab12960ba..12d91e44ac 100644 --- a/src/corelib/global/qglobal.h +++ b/src/corelib/global/qglobal.h @@ -393,37 +393,6 @@ Q_CORE_EXPORT void *qReallocAligned(void *ptr, size_t size, size_t oldsize, size Q_CORE_EXPORT void qFreeAligned(void *ptr); -/* - Avoid some particularly useless warnings from some stupid compilers. - To get ALL C++ compiler warnings, define QT_CC_WARNINGS or comment out - the line "#define QT_NO_WARNINGS". -*/ -#if !defined(QT_CC_WARNINGS) -# define QT_NO_WARNINGS -#endif -#if defined(QT_NO_WARNINGS) -# if defined(Q_CC_MSVC) -QT_WARNING_DISABLE_MSVC(4251) /* class 'type' needs to have dll-interface to be used by clients of class 'type2' */ -QT_WARNING_DISABLE_MSVC(4244) /* conversion from 'type1' to 'type2', possible loss of data */ -QT_WARNING_DISABLE_MSVC(4275) /* non - DLL-interface classkey 'identifier' used as base for DLL-interface classkey 'identifier' */ -QT_WARNING_DISABLE_MSVC(4514) /* unreferenced inline function has been removed */ -QT_WARNING_DISABLE_MSVC(4800) /* 'type' : forcing value to bool 'true' or 'false' (performance warning) */ -QT_WARNING_DISABLE_MSVC(4097) /* typedef-name 'identifier1' used as synonym for class-name 'identifier2' */ -QT_WARNING_DISABLE_MSVC(4706) /* assignment within conditional expression */ -QT_WARNING_DISABLE_MSVC(4355) /* 'this' : used in base member initializer list */ -QT_WARNING_DISABLE_MSVC(4710) /* function not inlined */ -QT_WARNING_DISABLE_MSVC(4530) /* C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc */ -# elif defined(Q_CC_BOR) -# pragma option -w-inl -# pragma option -w-aus -# pragma warn -inl -# pragma warn -pia -# pragma warn -ccc -# pragma warn -rch -# pragma warn -sig -# endif -#endif - // this adds const to non-const objects (like std::as_const) template constexpr typename std::add_const::type &qAsConst(T &t) noexcept { return t; } -- cgit v1.2.3