Add macros for enabling/disabling warnings
This allows us to avoid the ugly #if for compiler versions. We might still need for when a warning only occurs in one compiler version, but otherwise the code will be much cleaner. Change-Id: Ibc941d898b3dad2e3d87c11378f29139c31f0fff Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
This commit is contained in:
parent
34b66aaf07
commit
63a512023e
@ -1,7 +1,7 @@
|
||||
/****************************************************************************
|
||||
**
|
||||
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
|
||||
** Copyright (C) 2012 Intel Corporation
|
||||
** Copyright (C) 2014 Intel Corporation
|
||||
** Contact: http://www.qt-project.org/legal
|
||||
**
|
||||
** This file is part of the QtCore module of the Qt Toolkit.
|
||||
@ -1060,6 +1060,50 @@
|
||||
# define Q_DECL_CONST_FUNCTION Q_DECL_PURE_FUNCTION
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Warning/diagnostic handling
|
||||
*/
|
||||
|
||||
#define QT_DO_PRAGMA(text) _Pragma(#text)
|
||||
#if defined(Q_CC_INTEL)
|
||||
# define QT_WARNING_PUSH QT_DO_PRAGMA(warning(push))
|
||||
# define QT_WARNING_POP QT_DO_PRAGMA(warning(pop))
|
||||
# define QT_WARNING_DISABLE_INTEL(number) QT_DO_PRAGMA(warning(disable: number))
|
||||
# define QT_WARNING_DISABLE_MSVC(number)
|
||||
# define QT_WARNING_DISABLE_CLANG(text)
|
||||
# define QT_WARNING_DISABLE_GCC(text)
|
||||
#elif defined(Q_CC_MSVC) && _MSC_VER >= 1500
|
||||
# undef QT_DO_PRAGMA /* not needed */
|
||||
# define QT_WARNING_PUSH __pragma(warning(push))
|
||||
# define QT_WARNING_POP __pragma(warning(pop))
|
||||
# define QT_WARNING_DISABLE_MSVC(number) __pragma(warning(disable: number))
|
||||
# define QT_WARNING_DISABLE_INTEL(number)
|
||||
# define QT_WARNING_DISABLE_CLANG(text)
|
||||
# define QT_WARNING_DISABLE_GCC(text)
|
||||
#elif defined(Q_CC_CLANG)
|
||||
# define QT_WARNING_PUSH QT_DO_PRAGMA(clang diagnostic push)
|
||||
# define QT_WARNING_POP QT_DO_PRAGMA(clang diagnostic pop)
|
||||
# define QT_WARNING_DISABLE_CLANG(text) QT_DO_PRAGMA(clang diagnostic ignored text)
|
||||
# define QT_WARNING_DISABLE_GCC(text) QT_DO_PRAGMA(GCC diagnostic ignored text) // GCC directives work in Clang too
|
||||
# define QT_WARNING_DISABLE_INTEL(number)
|
||||
# define QT_WARNING_DISABLE_MSVC(number)
|
||||
#elif defined(Q_CC_GNU) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 405)
|
||||
# define QT_WARNING_PUSH QT_DO_PRAGMA(GCC diagnostic push)
|
||||
# define QT_WARNING_POP QT_DO_PRAGMA(GCC diagnostic pop)
|
||||
# define QT_WARNING_DISABLE_GCC(text) QT_DO_PRAGMA(GCC diagnostic ignored text)
|
||||
# define QT_WARNING_DISABLE_CLANG(text)
|
||||
# define QT_WARNING_DISABLE_INTEL(number)
|
||||
# define QT_WARNING_DISABLE_MSVC(number)
|
||||
#else // All other compilers, GCC < 4.6 and MSVC < 2008
|
||||
# define QT_WARNING_DISABLE_GCC(text)
|
||||
# define QT_WARNING_PUSH
|
||||
# define QT_WARNING_POP
|
||||
# define QT_WARNING_DISABLE_INTEL(number)
|
||||
# define QT_WARNING_DISABLE_MSVC(number)
|
||||
# define QT_WARNING_DISABLE_CLANG(text)
|
||||
# define QT_WARNING_DISABLE_GCC(text)
|
||||
#endif
|
||||
|
||||
/*
|
||||
Proper for-scoping in MIPSpro CC
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user