Introduce Q_ATTRIBUTE_FORMAT_PRINTF
Removes a lot of copy-paste code for flagging printf style functions. Change-Id: Iecc1e312d1f28b5cbb6b297039f1cdbbc888f843 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
parent
d1f8a56416
commit
e7d39c9292
@ -462,6 +462,19 @@ typedef qptrdiff qintptr;
|
||||
# define QT_FASTCALL
|
||||
#endif
|
||||
|
||||
// enable gcc warnings for printf-style functions
|
||||
#if defined(Q_CC_GNU) && !defined(__INSURE__)
|
||||
# if defined(Q_CC_MINGW) && !defined(Q_CC_CLANG)
|
||||
# define Q_ATTRIBUTE_FORMAT_PRINTF(A, B) \
|
||||
__attribute__((format(gnu_printf, (A), (B))))
|
||||
# else
|
||||
# define Q_ATTRIBUTE_FORMAT_PRINTF(A, B) \
|
||||
__attribute__((format(printf, (A), (B))))
|
||||
# endif
|
||||
#else
|
||||
# define Q_ATTRIBUTE_FORMAT_PRINTF(A, B)
|
||||
#endif
|
||||
|
||||
//defines the type for the WNDPROC on windows
|
||||
//the alignment needs to be forced for sse2 to not crash with mingw
|
||||
#if defined(Q_OS_WIN)
|
||||
|
@ -92,55 +92,16 @@ public:
|
||||
Q_DECL_CONSTEXPR QMessageLogger(const char *file, int line, const char *function, const char *category)
|
||||
: context(file, line, function, category) {}
|
||||
|
||||
void debug(const char *msg, ...) const
|
||||
#if defined(Q_CC_GNU) && !defined(__INSURE__)
|
||||
# if defined(Q_CC_MINGW) && !defined(Q_CC_CLANG)
|
||||
__attribute__ ((format (gnu_printf, 2, 3)))
|
||||
# else
|
||||
__attribute__ ((format (printf, 2, 3)))
|
||||
# endif
|
||||
#endif
|
||||
;
|
||||
void noDebug(const char *, ...) const
|
||||
#if defined(Q_CC_GNU) && !defined(__INSURE__)
|
||||
# if defined(Q_CC_MINGW) && !defined(Q_CC_CLANG)
|
||||
__attribute__ ((format (gnu_printf, 2, 3)))
|
||||
# else
|
||||
__attribute__ ((format (printf, 2, 3)))
|
||||
# endif
|
||||
#endif
|
||||
void debug(const char *msg, ...) const Q_ATTRIBUTE_FORMAT_PRINTF(2, 3);
|
||||
void noDebug(const char *, ...) const Q_ATTRIBUTE_FORMAT_PRINTF(2, 3)
|
||||
{}
|
||||
void warning(const char *msg, ...) const
|
||||
#if defined(Q_CC_GNU) && !defined(__INSURE__)
|
||||
# if defined(Q_CC_MINGW) && !defined(Q_CC_CLANG)
|
||||
__attribute__ ((format (gnu_printf, 2, 3)))
|
||||
# else
|
||||
__attribute__ ((format (printf, 2, 3)))
|
||||
# endif
|
||||
#endif
|
||||
;
|
||||
void critical(const char *msg, ...) const
|
||||
#if defined(Q_CC_GNU) && !defined(__INSURE__)
|
||||
# if defined(Q_CC_MINGW) && !defined(Q_CC_CLANG)
|
||||
__attribute__ ((format (gnu_printf, 2, 3)))
|
||||
# else
|
||||
__attribute__ ((format (printf, 2, 3)))
|
||||
# endif
|
||||
#endif
|
||||
;
|
||||
void warning(const char *msg, ...) const Q_ATTRIBUTE_FORMAT_PRINTF(2, 3);
|
||||
void critical(const char *msg, ...) const Q_ATTRIBUTE_FORMAT_PRINTF(2, 3);
|
||||
|
||||
#ifndef Q_CC_MSVC
|
||||
Q_NORETURN
|
||||
#endif
|
||||
void fatal(const char *msg, ...) const Q_DECL_NOTHROW
|
||||
#if defined(Q_CC_GNU) && !defined(__INSURE__)
|
||||
# if defined(Q_CC_MINGW) && !defined(Q_CC_CLANG)
|
||||
__attribute__ ((format (gnu_printf, 2, 3)))
|
||||
# else
|
||||
__attribute__ ((format (printf, 2, 3)))
|
||||
# endif
|
||||
#endif
|
||||
;
|
||||
void fatal(const char *msg, ...) const Q_DECL_NOTHROW Q_ATTRIBUTE_FORMAT_PRINTF(2, 3);
|
||||
|
||||
#ifndef QT_NO_DEBUG_STREAM
|
||||
QDebug debug() const;
|
||||
|
@ -302,24 +302,8 @@ public:
|
||||
const QString &a4, const QString &a5, const QString &a6,
|
||||
const QString &a7, const QString &a8, const QString &a9) const Q_REQUIRED_RESULT;
|
||||
|
||||
QString &vsprintf(const char *format, va_list ap)
|
||||
#if defined(Q_CC_GNU) && !defined(__INSURE__)
|
||||
# if defined(Q_CC_MINGW) && !defined(Q_CC_CLANG)
|
||||
__attribute__ ((format (gnu_printf, 2, 0)))
|
||||
# else
|
||||
__attribute__ ((format (printf, 2, 0)))
|
||||
# endif
|
||||
#endif
|
||||
;
|
||||
QString &sprintf(const char *format, ...)
|
||||
#if defined(Q_CC_GNU) && !defined(__INSURE__)
|
||||
# if defined(Q_CC_MINGW) && !defined(Q_CC_CLANG)
|
||||
__attribute__ ((format (gnu_printf, 2, 3)))
|
||||
# else
|
||||
__attribute__ ((format (printf, 2, 3)))
|
||||
# endif
|
||||
#endif
|
||||
;
|
||||
QString &vsprintf(const char *format, va_list ap) Q_ATTRIBUTE_FORMAT_PRINTF(2, 0);
|
||||
QString &sprintf(const char *format, ...) Q_ATTRIBUTE_FORMAT_PRINTF(2, 3);
|
||||
|
||||
int indexOf(QChar c, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
|
||||
int indexOf(const QString &s, int from = 0, Qt::CaseSensitivity cs = Qt::CaseSensitive) const;
|
||||
|
Loading…
Reference in New Issue
Block a user