From 568c26227d09b48fa6066f74d9dfa5d844073a5c Mon Sep 17 00:00:00 2001 From: Kai Koehne Date: Wed, 24 Sep 2014 12:21:27 +0200 Subject: [PATCH] Silence moc warnings about 'argument mismatch' The moc preprocessor is not necessarily fully compatible with the native compiler preprocessor, which can lead to annoying warnings. This fixes a problem particularly with the boost headers that rely on MSVC only preprocessor features (to work around other MSVC preprocessor deficiencies). Task-number: QTBUG-29331 Change-Id: If884452969b512a746c81e235d31636b39c45b27 Reviewed-by: Olivier Goffart --- src/tools/moc/preprocessor.cpp | 6 ------ tests/auto/tools/moc/tst_moc.cpp | 2 +- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/src/tools/moc/preprocessor.cpp b/src/tools/moc/preprocessor.cpp index 30fed460ebd..087b064c0f8 100644 --- a/src/tools/moc/preprocessor.cpp +++ b/src/tools/moc/preprocessor.cpp @@ -632,12 +632,6 @@ Symbols Preprocessor::macroExpandIdentifier(Preprocessor *that, SymbolStack &sym if (macro.isVariadic && arguments.size() == macro.arguments.size() - 1) arguments += Symbols(); - if (arguments.size() != macro.arguments.size() && - // 0 argument macros are a bit special. They are ok if the - // argument is pure whitespace or empty - (macro.arguments.size() != 0 || arguments.size() != 1 || !arguments.at(0).isEmpty())) - that->warning("Macro argument mismatch."); - // now replace the macro arguments with the expanded arguments enum Mode { Normal, diff --git a/tests/auto/tools/moc/tst_moc.cpp b/tests/auto/tools/moc/tst_moc.cpp index ec3dbd46a91..13e786cd204 100644 --- a/tests/auto/tools/moc/tst_moc.cpp +++ b/tests/auto/tools/moc/tst_moc.cpp @@ -1837,7 +1837,7 @@ void tst_Moc::warnings_data() << QStringList() << 0 << QString("IGNORE_ALL_STDOUT") - << QString(":3: Warning: Macro argument mismatch.\n:4: Warning: Macro argument mismatch."); + << QString(); QTest::newRow("Class declaration lacks Q_OBJECT macro.") << QByteArray("class X : public QObject \n { \n public slots: \n void foo() {} \n };")