summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@qt.io>2018-03-02 15:13:45 +0100
committerAndy Shaw <andy.shaw@qt.io>2018-03-05 06:54:06 +0000
commit0da3ebd9940a214cc7ea292d13cd86967cd89a66 (patch)
tree823482c97775d9ca7d982ed8a11cc4167563a98a
parent174a1e96350e8b128e856e97392a9b57c8c08ebb (diff)
moc: Don't error our when parsing "using namespace __identifier(...)"
This follows on from a2322519929bd36a90422dccc0310b8230729197 which covered a similar instance of this. As with that change, we should not abort the compilation, just ignore it. Task-number: QTBUG-63772 Change-Id: Ide958080a90f43ed19edd8a320e7d45de1c96821 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
-rw-r--r--src/tools/moc/moc.cpp3
-rw-r--r--tests/auto/tools/moc/namespace.h1
2 files changed, 4 insertions, 0 deletions
diff --git a/src/tools/moc/moc.cpp b/src/tools/moc/moc.cpp
index b9f71ddb15..61a5542c83 100644
--- a/src/tools/moc/moc.cpp
+++ b/src/tools/moc/moc.cpp
@@ -674,6 +674,9 @@ void Moc::parse()
if (test(NAMESPACE)) {
while (test(SCOPE) || test(IDENTIFIER))
;
+ // Ignore invalid code such as: 'using namespace __identifier("x")' (QTBUG-63772)
+ if (test(LPAREN))
+ until(RPAREN);
next(SEMIC);
}
break;
diff --git a/tests/auto/tools/moc/namespace.h b/tests/auto/tools/moc/namespace.h
index 43d00e82f3..7f1e46cd62 100644
--- a/tests/auto/tools/moc/namespace.h
+++ b/tests/auto/tools/moc/namespace.h
@@ -76,6 +76,7 @@ namespace FooNamespace {
#ifdef Q_MOC_RUN
namespace __identifier("<AtlImplementationDetails>") {} // QTBUG-56634
+using namespace __identifier("<AtlImplementationDetails>"); // QTBUG-63772
#endif
#endif // NAMESPACE_H