moc: do not error if the last token of a define is #

We do not need to emit a diagnostic at definition time.
The diagnostic will be emit at expansion time.

Fix error when parsing boost header:
/usr/include/boost/fusion/container/vector/vector.hpp:25: Error: '#' is not followed by a macro parameter

Task-number: QTBUG-42233
Change-Id: I27deab362341f17ca3b0160615bb1b0934c3d5c3
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
This commit is contained in:
Olivier Goffart 2014-10-28 14:33:39 +01:00
parent 7567e09389
commit 27d79ce91b
2 changed files with 3 additions and 5 deletions

View File

@ -1,7 +1,7 @@
/****************************************************************************
**
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
** Copyright (C) 2013 Olivier Goffart <ogoffart@woboq.org>
** Copyright (C) 2014 Olivier Goffart <ogoffart@woboq.org>
** Contact: http://www.qt-project.org/legal
**
** This file is part of the tools applications of the Qt Toolkit.
@ -1094,10 +1094,6 @@ void Preprocessor::preprocess(const QByteArray &filename, Symbols &preprocessed)
macro.symbols.last().token == PP_HASHHASH) {
error("'##' cannot appear at either end of a macro expansion");
}
if (macro.symbols.last().token == HASH ||
macro.symbols.last().token == PP_HASH) {
error("'#' is not followed by a macro parameter");
}
}
macros.insert(name, macro);
continue;

View File

@ -77,6 +77,8 @@
#define DEFINE_CMDLINE_SIGNAL void cmdlineSignal(const QMap<int, int> &i)
#endif
#define HASH_SIGN #
PD_BEGIN_NAMESPACE
class DEFINE_CMDLINE_EMPTY PD_CLASSNAME DEFINE_CMDLINE_EMPTY